Uros Bizjak [Wed, 11 Feb 2004 23:39:41 +0000 (00:39 +0100)]
optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
2004-02-11 Uros Bizjak <uros@kss-loka.si>
* optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
(log10_optab, log2_optab): Define corresponding macros.
* optabs.c (init_optabs): Initialize log10_optab and log2_optab.
* genopinit.c (optabs): Implement log10_optab and log2_optab
using log10?f2 and log2?f2 patterns.
* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
(expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
* config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
log2, log2f and log2l built-ins as inline x87 intrinsics.
Daniel Berlin [Wed, 11 Feb 2004 18:10:49 +0000 (18:10 +0000)]
dwarf2out.c (output_loc_list): Remove no longer necessary, and now incorrect, hunk.
2004-02-11 Daniel Berlin <dberlin@dberlin.org>
* dwarf2out.c (output_loc_list): Remove no longer necessary, and now
incorrect, hunk.
(add_location_or_const_value_attribute): Use text_section_label,
not TEXT_SECTION_NAME.
Per Bothner [Wed, 11 Feb 2004 15:29:30 +0000 (07:29 -0800)]
Represent column numbers using line-map's source_location.
The "next available source_location" is now managed internally by
line-maps.c rather than by clients.
* line-map.h (struct line_map): New field column_bits.
<from_line>: Rename field to start_location.
(struct line_maps): New fields highest_location and max_column_hint.
(linemap_check_files_exited): New declaration.
(linemap_line_start): New declaration.
(linemap_add): Remove from_line parameter; use highest_location field.
(SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
(SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
(CURRENT_LINE_MAP): Remove macro.
(linemap_position_for_column): New inline function.
* line-map.c (linemap_init): Clear new fields.
(linemap_check_files_exited): New function, extracted from ...
(linemap_free): Use linemap_check_files_exited.
(linemap_add): Remove from_line parameter. Various updates.
(linemap_line_start): New function.
(linemap_lookeup): Update for new field names.
* cpphash.h (struct cpp_reader) <map>: Field removed. Because
linemap_position_for_column may unpredictably change the current map,
it is cleaner and simpler for us to not cache it in cpp_reader.
(struct cpp_buffer): New sysp field.
Changed warned_cplusplus_comments and from_stage3 to bitfields.
* cppinit.c (cpp_read_min_file): pfile->map no longer exists.
* cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
current map using linemap_lookup.
(do_linemarker): Also set buffer's sysp field.
(destringize_and_run): No longer need to decrement current line.
* cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
(search_path_head, open_file_failed): Use buffer's sysp.
(cpp_make_system_header): Get current map using linemap_lookup.
Also set buffer's sysp flag.
* cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
* cpphash.h (CPP_INCREMENT_LINE): New macro.
(struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
(struct cpp_reader): ... and adding saved_line_base field.
* cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
Update accordingly. Don't adjust line.
(_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
* cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
(cpp_in_system_header): ... new inline function, using buffer's sysp.
* cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
* cpplex.c (_cpp_lex_direct): Likewise.
* cppmacro.c (_cpp_builtin_macro_text): Likewise.
* cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
* cpplib.h (struct cpp_token): Rename line field to src_loc.
Remove col field as it is now subsumed by src_loc.
* cpperror.c: Update various field, parameter, and macro names.
(print_location): If col==0, try SOURCE_COLUMN of line.
(cpp_error): Use cur_token's src_loc field, rather than line+col.
* cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
* cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
_cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
(_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
(_cpp_get_fresh_line): Don't need to adjust line for missing newline.
(_cpp_lex_direct): Use linemap_position_for_column.
* c-ppoutput.c (maybe_print_line, print_line): Don't take map
parameter. Instead get it from the line_table global. Adjust callers.
(print): Remove map field. Replace line field to src_line.
(init_pp_output, account_for_newlines, maybe_print_line): Adjust.
(cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
(pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
* cpptrad.c (copy_comment): Rename variable.
* c-lex.c (map): Remove static variable, for same reason we removed
cpp_reader's map field.
(cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
to call linemap_lookup.
(cb_line_change): Token's line field replaced by src_loc.
(fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
Don't save new_map.
* cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
source_location.
Hartmut Penner [Wed, 11 Feb 2004 14:30:13 +0000 (14:30 +0000)]
altivec.md (*movv4si_internal): At least one operand must be register_operand.
* config/rs6000/altivec.md (*movv4si_internal): At least one
operand must be register_operand.
(*movv8hi_internal1): Likewise.
(*movv16qi_internal1): Likewise.
(*movv4sf_internal1): Likewise.
Hartmut Penner [Wed, 11 Feb 2004 09:00:08 +0000 (09:00 +0000)]
* gcc/config/rs6000/rs6000.c (rs6000_override_options)
Set AltiVec ABI and vrsave as default for ppc64 linux.
(init_cumulative_args): Post error, if try to return
value in AltiVec register without enable AltiVec.
(function_arg_advance): Ditto for passing arguments.
Joseph Myers [Tue, 10 Feb 2004 19:12:34 +0000 (19:12 +0000)]
gjavah.c: Include "intl.h".
* gjavah.c: Include "intl.h".
(error): New function.
(main): Call gcc_init_libintl.
(get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
print_stub_or_jni, process_file, main): Use error rather than
fprintf.
(print_method_info, usage, help, version, main): Mark strings for
translation with _. Avoid splitting up sentences. Send
information messages to stdout.
* jcf-dump.c: Include "intl.h".
(main): Call gcc_init_libintl.
(process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
Mark error, usage and version messages for translation with _.
Avoid splitting up sentences.
* jv-scan.c: Include "intl.h".
(fatal_error, warning): Change parameter s to msgid. Translate
messages.
(main): Call gcc_init_libintl.
(usage, help, version): Mark error, usage and version messages for
translation with _. Avoid splitting up sentences.
* jvgenmain.c: Include "intl.h".
(main): Call gcc_init_libintl.
(usage, main): Mark error messages for translation with _.
* Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
JVGENMAIN_OBJS): Add intl.o.
(java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
java/jvgenmain.o): Update dependencies.
David Jee [Tue, 10 Feb 2004 18:54:25 +0000 (18:54 +0000)]
2004-02-10 David Jee <djee@redhat.com>
* java/awt/GridBagLayout.java
(GridBagLayout): New private field, internalcomptable.
(lookupInternalConstraints): New method.
(ArrangeGrid): Use components' MINSIZE. Use internalcomptable.
(GetLayoutInfo): Reimplement.
(calcCellSizes): Ignore rows/columns with size 0.
David Jee [Tue, 10 Feb 2004 17:12:09 +0000 (17:12 +0000)]
2004-02-10 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkButtonPeer.java
(gtkSetLabel): New native method definition.
(setLabel): Use gtkSetLabel.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
(Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel): New method.
* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
(init_cumulative_args): Likewise.
(a7_overlap_mentioned_p): Delete prototype.
* config/xtensa/xtensa.c (struct machine_function): Replace
incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
Add set_frame_ptr_insn field.
(xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
(xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
if the operand is an argument in a7. If so, copy a7 to a new pseudo
at the function entry and replace the operand with the pseudo.
(init_cumulative_args): Remove unused arguments. Add new "incoming"
argument and record this flag in CUMULATIVE_ARGS.
(function_arg): Remove result_mode and special-case code to handle
arguments in a7. Instead, set need_a7_copy flag when there is an
incoming argument in a7.
(xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
and use the value recorded in cfun->machine->set_frame_ptr_insn.
(xtensa_builtin_saveregs): Check for negative gp_left value. Set
need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
special-case code.
(a7_overlap_mentioned_p): Delete.
* config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
arguments to init_cumulative_args and pass "incoming" flag instead.
(BLOCK_REG_PADDING): Delete.
* config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
checks for reload_in_progress and reload_completed. Update calls to
xtensa_copy_incoming_a7.
(ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
to call xtensa_copy_incoming_a7.
Stefan Olsson [Tue, 10 Feb 2004 00:31:53 +0000 (01:31 +0100)]
mt_allocator.h: thread_id is unused in non threaded applications and now has a ifdef to remove...
2004-02-09 Stefan Olsson <stefan@xapa.se>
* include/ext/mt_allocator.h: thread_id is unused in non threaded
applications and now has a ifdef to remove it completely on
compilers without thread support. Include stdlib.h due to a
compiler warning on getenv().
Paolo Carlini [Mon, 9 Feb 2004 23:10:47 +0000 (23:10 +0000)]
re PR libstdc++/14071 (locale::global doesn't always call setlocale)
2004-02-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/14071
* src/locale_init.cc (locale::global(const locale&)): Use
locale::name() in order to decide whether calling setlocale.
* testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
DJ Delorie [Mon, 9 Feb 2004 22:33:45 +0000 (17:33 -0500)]
xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No longer modify standard_exec_prefix...
* config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
longer modify standard_exec_prefix, standard_bindir_prefix, or
standard_startfile_prefix.
Arnaud Charlet [Mon, 9 Feb 2004 14:56:05 +0000 (15:56 +0100)]
[multiple changes]
2004-02-09 Ed Schonberg <schonberg@gnat.com>
* exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
for a tagged type, verify that both formals have the same type.
* exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
temporary when the formal is an in-parameter and the actual a possibly
unaligned slice.
* exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
when expansion is disabled, to ensure proper name capture with
overloaded literals. Condition can be of any boolean type, resolve
accordingly.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
renaming is for a formal subprogram with a default operator name, and
there is a usable operator that is visible at the point of
instantiation.
2004-02-09 Robert Dewar <dewar@gnat.com>
* ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
rewrite to ignore errors in ali files, intended to allow tools downward
compatibility with new versions of ali files.
* ali.ads: Add new parameter Ignore_Errors
* bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
duplicating the error message giving the file with restrictions.
* debug.adb: Add debug flag I for gnatbind
* errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
operators for the case where the operator is a defining operator.
* exp_ch3.adb: Minor reformatting (new function spec format).
* exp_ch4.adb: Add comment for previous change, and make minor
adjustment to loop to always check for improper loop termination.
Minor reformatting throughout (new function spec format).
* gnatbind.adb: Implement -di debug flag for gnatbind
* gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
* gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
* lib-load.adb: Fix bad assertion.
Found by testing and code reading.
Minor reformatting.
* lib-load.ads: Minor reformatting.
* lib-writ.adb: There is only one R line now.
* lib-writ.ads: Add documentation on making downward compatible changes
to ali files so old tools work with new ali files.
There is only one R line now.
Add documentation on format incompatibilities (with special GPS note)
* namet.ads, namet.adb: (Is_Operator_Name): New procedure
* par-load.adb: Minor reformatting
* sem_ch8.adb: Fix to error message from last update
Minor reformatting and restructuring of code from last update
Roger Sayle [Mon, 9 Feb 2004 14:00:36 +0000 (14:00 +0000)]
fold-const.c (fold): Use the original type conversion tree code rather than call fold_convert...
* fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
tree code rather than call fold_convert, which doesn't specify a
default floating point to integer conversion.
* gcc.c-torture/compile/20040209-1.c: New test case.
Arnaud Charlet [Mon, 9 Feb 2004 10:44:13 +0000 (11:44 +0100)]
[multiple changes]
2004-02-09 Albert Lee <lee@gnat.com>
* errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
2004-02-09 Ed Schonberg <schonberg@gnat.com>
* exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
slices.
* exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
is nested in an instance that is not frozen yet, to avoid
order-of-elaboration problems in gigi.
* sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
body the attribute is legal.
2004-02-09 Robert Dewar <dewar@gnat.com>
* s-rident.ads: Minor comment correction
* targparm.adb: Remove dependence on uintp completely. There was
always a bug in Make in that it called Targparm before initializing
the Uint package. The old code appeared to get away with this, but
the new code did not! This caused an assertion error in gnatmake.
* targparm.ads: Fix bad comment, restriction pragmas with parameters
are indeed fully supported.
Paolo Carlini [Mon, 9 Feb 2004 09:02:52 +0000 (09:02 +0000)]
re PR libstdc++/14072 (basic_ios::imbue leaves dangling pointers)
2004-02-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/14072
* include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
Don't leave dangling pointers.
* testsuite/27_io/basic_ios/imbue/14072.cc: New.
* testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
facet is needed in the final test.
m68k.h (REGISTER_NAMES): Prefix each name with REGISTER_PREFIX.
* config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
REGISTER_PREFIX.
* (M68K_FP_REG_NAME): New macro to specify an alternate name for the
frame pointer register, overridable by OS targets.
* (M68K_REGNAME): Macro to obtain register name for asm output,
eventually replacing %a6 with M68K_FP_REG_NAME.
* config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
* config/m68k/linux.h (REGISTER_NAMES): Likewise.
* config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
* config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
* config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
Andreas Schwab [Sun, 8 Feb 2004 23:30:49 +0000 (23:30 +0000)]
m68k.h (REGISTER_NAMES): Prefix each name with REGISTER_PREFIX.
* config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
REGISTER_PREFIX.
* (M68K_FP_REG_NAME): New macro to specify an alternate name for the
frame pointer register, overridable by OS targets.
* (M68K_REGNAME): Macro to obtain register name for asm output,
eventually replacing %a6 with M68K_FP_REG_NAME.
* config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
* config/m68k/linux.h (REGISTER_NAMES): Likewise.
* config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
* config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
* config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
Per Bothner [Sun, 8 Feb 2004 21:02:53 +0000 (13:02 -0800)]
ByteBuffer.java (shiftDown): New helper method.
* java/nio/ByteBuffer.java (shiftDown): New helper method.
* java/nio/natDirectByteBufferImpl.cc (shiftDown): New implementation.
* java/nio/ByteBufferImpl.java (compact): Use new shiftDown method.
* sava/nio/ByteBufferHelper.java: Remove redundant 'final' specifiers.
Pass ByteOrder parameter to most methods, since the underlying
ByteBuffer's order isn't always what we should use.
* java/nio/ByteBufferImpl.java: Pass byte-order various places.
* java/nio/DirectByteBufferImpl.java: Likewise.
Use ByteBufferHelper methods.
* java/nio/MappedByteBufferImpl.java: Likewise.
(compact): Use shiftDown.
* java/nio/CharViewBufferImpl.java (<init>): Pass byte-order.
(get, put): Use ByteBufferHelper.
(compact): Use new shiftDown method.
(duplicate(boolean)): New helper method.
(duplicate, asReadOnlyBuffer): Use it.
(order): Return endian field.
* java/nio/DoubleViewBufferImpl.java: Likewise.
* java/nio/FloatViewBufferImpl.java: Likewise.
* java/nio/IntViewBufferImpl.java: Likewise.
* java/nio/LongViewBufferImpl.java: Likewise.
* java/nio/ShortViewBufferImpl.java: Likewise.
* java/nio/CharViewBufferImpl.java (subsequence): Redundant test.
* java/nio/DirectByteBufferImpl.java (shiftDown): New native method.
(compact): Re-implement using shiftDown.
Kazu Hirata [Sun, 8 Feb 2004 19:45:46 +0000 (19:45 +0000)]
c-objc-common.c (): Fix a typo in a warning.
* c-objc-common.c (): Fix a typo in a warning.
* cse.c (preferrable): Change to preferable. Update all of its
callers.
* genautomata.c (ainsn): Change
first_ainsn_with_given_equialence_num to
first_ainsn_with_given_equivalence_num. Update all of its
references.
Paolo Carlini [Sun, 8 Feb 2004 17:11:07 +0000 (17:11 +0000)]
basic_string.tcc (assign(const _CharT*, size_type)): When working in place remember to set the state to sharable (otherwise...
2004-02-08 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
When working in place remember to set the state to sharable
(otherwise, _M_mutate does it).
Alan Modra [Sun, 8 Feb 2004 12:11:25 +0000 (12:11 +0000)]
ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct long double function return and long double arg handling.
* src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
long double function return and long double arg handling.
(ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
Use "end_pfr" instead of "nf". Correct long double handling.
Localise "temp".
* src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
return value.
* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
space for long double return value. Adjust stack frame and offsets.
Load f2 long double return.