Age | Commit message (Collapse) | Author | Files | Lines |
|
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
* par-prag.adb, snames.adb, snames.ads, snames.h,
sem_prag.adb: Implement pragma Profile.
* stylesw.adb: Implement -gnatyN switch to turn off all style check
options.
* usage.adb: Add line for -gnatyN switch
* vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
From-SVN: r77537
|
|
From-SVN: r77536
|
|
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.
From-SVN: r77535
|
|
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.
From-SVN: r77531
|
|
don't use not_accessible_field_error...
* parse.y (resolve_qualified_expression_name): In case of inaccessible
class don't use not_accessible_field_error, which can get confused.
From-SVN: r77525
|
|
* config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
code to support SGS assembler. Reformat adjacent code where possible.
* config/m68k/m68k.c (switch_table_difference_label_flag): Remove definition.
* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support for '%#'.
* config/m68k/linux.h, config/m68k/m68k.c,
* config/m68k/math-68881.h: Replace `%#' with `#' in inline asm macros and
asm_printf() format strings.
* config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
* config/m68k/linux.h: Update copyright.
* config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
From-SVN: r77518
|
|
From-SVN: r77515
|
|
* 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].
From-SVN: r77511
|
|
* 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].
Co-Authored-By: Bernardo Innocenti <bernie@develer.com>
From-SVN: r77510
|
|
From-SVN: r77507
|
|
* target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
hook_rtx_tree_int_null.
* targhooks.c (default_struct_value_rtx): Remove.
* targhooks.h: Remove the prototype for
default_struct_value_rtx.
* config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
config/ip2k/ip2k.c, config/iq2000/iq2000.c,
config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
config/mn10300/mn10300.c, config/pdp11/pdp11.c,
config/rs6000/rs6000.c, config/s390/s390.c,
config/stormy16/stormy16.c, config/v850/v850.c,
config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
* doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
From-SVN: r77505
|
|
* README.Portability: Change "ISO C89" to "ISO C90".
* c-parse.in (primary, initelt): Likewise.
testsuite:
* gcc.dg/c90-init-1.c: Adjust expected error messages.
From-SVN: r77499
|
|
to a double.
* real.c (encode_ibm_extended): Normalize the input value before
converting it to a double. Handle the case where a normal value
rounds to infinity.
From-SVN: r77498
|
|
* 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.
From-SVN: r77497
|
|
From-SVN: r77495
|
|
From-SVN: r77485
|
|
From-SVN: r77480
|
|
From-SVN: r77478
|
|
* default.h (PROMOTE_PROTOTYPES): Remove.
* system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
EXPAND_BUILTIN_SAVEREGS): Poison.
* target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
hook_bool_tree_false.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
* target.h: Replace SETUP_INCOMING_VARARGS with
targetm.calls.setup_incoming_varargs().
* targhooks.c (default_promote_function_return): Remove.
(default_promote_prototypes): Likewise.
(default_struct_value_rtx): Always abort().
(default_expand_builtin_saveregs): Always print an error
message.
(default_setup_incoming_varargs): Do nothing.
(default_pretend_outgoing_varargs_named): Don't depend on
SETUP_INCOMING_VARARGS.
* targhooks.h: Remove the prototype for
default_promote_function_return and
default_promote_prototypes.
From-SVN: r77477
|
|
* system.h (SHARED_SECTION_ASM_OP): Poison.
* varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
* doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
From-SVN: r77476
|
|
* c-common.c (shadow_warning): Delete.
* c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
* c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
* c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
* c-parse.in (free_parser_stacks): Delete.
cp:
* name-lookup.c (pushdecl): Issue shadow warnings directly.
* parser.c (free_parser_stacks): Delete.
testsuite:
* gcc.c-torture/execute/string-opt-15.c: Define memcmp with void *
arguments.
* gcc.dg/fwritable-strings-1.c: Expect the deprecation notice.
------
Bug 13856
* c-decl.c (diagnose_mismatched_decls): Only give special
treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
is also true.
(merge_decls): Don't clear DECL_BUILT_IN_CLASS and
DECL_FUNCTION_CODE when defining a built-in function.
Don't update DECL_ESTIMATED_INSNS.
* dwarf2out.c (dwarf2out_decl): Don't ignore built-in
FUNCTION_DECLs.
* tree.h: Delete DECL_ESTIMATED_INSNS.
* tree-inline.c (struct inline_data): Delete inlined_insns field.
(expand_call_inline, optimize_inline_calls): Don't update
DECL_ESTIMATED_INSNS nor inlined_insns.
* cgraphunit.c (cgraph_analyze_function): Don't update
DECL_ESTIMATED_INSNS.
cp:
* optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
* decl.c (duplicate_decls, start_function): Likewise.
testsuite:
* gcc.dg/visibility-8.c: New testcase.
From-SVN: r77475
|
|
From-SVN: r77469
|
|
subdir.
* Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
Use the top level mkinstalldirs, not the one in the gcc subdir.
* mkinstalldirs: Remove (from the gcc subdir).
From-SVN: r77466
|
|
PR middle-end/13696
* fold-const.c (fold_convert): New function to provide type
conversion to the middle-end without using convert.
(negate_expr, associate_trees, size_diffop, omit_one_operand,
operand_equal_for_comparison_p, pedantic_omit_one_operand,
invert_truthvalue, optimize_bit_field_compare, range_binop,
decode_field_reference, make_range, build_range_check, unextend,
fold_truthop, extract_muldiv_1, fold_mathfn_compare,
fold_binary_op_with_conditional_arg, fold_inf_compare,
fold_single_bit_test, fold, multiple_of_p): Replace all calls to
convert with calls to fold_convert.
* g++.dg/opt/fold1.C: New test case.
From-SVN: r77464
|
|
* genrecog.c (find_operand): add extra argument stop.
(validate_pattern): Verify that mach_dup is duplicating operand
defined lexically earlier.
From-SVN: r77461
|
|
* config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
* system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
* config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
config/ia64/ia64.h, config/ip2k/ip2k.h,
config/iq2000/iq2000.h, config/mips/iris5.h,
config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
config/rs6000/aix51.h, config/rs6000/aix52.h,
config/rs6000/darwin.h, config/rs6000/rs6000.h,
config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
config/sparc/linux.h, config/sparc/linux64.h,
config/sparc/netbsd-elf.h, config/sparc/sparc.h,
config/xtensa/xtensa.h: Remove the definitions of
MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
MAX_WCHAR_TYPE_SIZE.
* doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
From-SVN: r77460
|
|
PR bootstrap/13990
* config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
gen_rtx_NE.
From-SVN: r77459
|
|
ENABLE_CHECKING and #endif.
* var-tracking.c (vt_add_function_parameters): Surround checkings by
#ifdef ENABLE_CHECKING and #endif.
From-SVN: r77458
|
|
(-B)-A...
* fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
either (-A)-B or (-B)-A, if A or B is easily negated respectively.
(fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
integer types and floating point with unsafe_math_optimizations.
Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
Optimize A - B as A + (-B), if B is easily negated.
From-SVN: r77453
|
|
gcc/
* c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
config/m32r/linux.h, config/rs6000/ppc64-fp.c,
config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
Update copyright.
cp/
* rtti.c: Update copyright.
From-SVN: r77449
|
|
From-SVN: r77448
|
|
* config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
glibc 2.3 or better.
From-SVN: r77443
|
|
FLOAT_LIB_COMPARE_RETURNS_BOOL.
* doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
to FLOAT_LIB_COMPARE_RETURNS_BOOL.
From-SVN: r77442
|
|
* config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
(SHLIB_MAPFILES): Add libgcc-ppc64.ver.
(SHLIB_MKMAP_OPTS): Delete.
(TARGET_LIBGCC2_CFLAGS): Add -specs.
(bispecs): Add rule.
* config/rs6000/libgcc-ppc64.ver: New file.
* config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
(__floatdidf, __floatdisf): Optimize multiply.
(__fixunstfdi): New function.
* config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
real and imag parts larger than one register.
(function_arg): Correct type of reg used when fp arg split partially
to stack.
* config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
and __MACH__ or __powerpc64__.
From-SVN: r77440
|
|
gen_highpart or gen_lowpart when...
* builtins.c (expand_builtin_signbit): Use extract_bit_field instead
of gen_highpart or gen_lowpart when the floating point format is
wider than the result mode.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r77439
|
|
2004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
* dwarf2out.c (loclabel_num): Move into #ifdef
DWARF2_DEBUGGING_INFO.
From-SVN: r77438
|
|
initialize_inlined_parameters, at tree-inline.c:829)
PR c++/14033
* g++.dg/other/crash-2.C: New test.
From-SVN: r77437
|
|
initialize_inlined_parameters, at tree-inline.c:829)
PR c++/14033
* decl.c (require_complete_types_for_parms): Do not insert
error_mark_node in the parameter list.
From-SVN: r77436
|
|
From-SVN: r77433
|
|
2004-02-06 Ziemowit Laski <zlaski@apple.com>
* objc/objc-act.c (build_super_template) the 'class' field of
'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
(get_super_receiver): Likewise.
[gcc/libobjc/ChangeLog]
2004-02-06 Ziemowit Laski <zlaski@apple.com>
* objc/objc-api.h (objc_super): The 'class' field shall
be named 'super_class' #ifdef __cplusplus.
From-SVN: r77430
|
|
* reload1.c (check_eliminable_occurrences): Optimize the reset
of can_eliminate.
(eliminate_regs_in_insn): Likewise.
From-SVN: r77427
|
|
beginning of function...
* dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
at the beginning of function, call dwarf2out_var_location for
NOTE_INSN_VAR_LOCATION note.
(struct var_loc_node, struct var_loc_list_def, loclabel_num,
decl_loc_table): New.
(lookup_decl_loc): New function.
(add_var_loc_to_decl): New function.
(based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
only if can_use_fbreg.
(mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
functions.
(loc_descriptor): Likewise. Process VAR_LOCATION.
(concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
(loc_descriptor_from_tree): Call mem_loc_descriptor with
can_use_fbreg == true.
(add_location_or_const_value_attribute): Added parameter enum
dwarf_attribute attr, generate attribute ATTR. Create the location list.
(add_bound_info): Call loc_descriptor with can_use_fbreg == true.
(gen_formal_parameter_die): Call add_location_or_const_value_attribute
with attr == DW_AT_location.
(gen_subprogram_die): Generate the location list for DW_AT_frame_base
if frame_base_decl is defined and has a location list.
(gen_variable_die): Call add_location_or_const_value_attribute with
attr == DW_AT_location.
(dwarf2out_var_location): New function.
(dwarf2out_begin_function): New function.
(dwarf2out_init): Create decl_loc_table.
Co-Authored-By: Josef Zlomek <zlomekj@suse.cz>
From-SVN: r77421
|
|
forces by an insn...
* loop.c (force_movables): Transitively increase the priorities of
all insns forces by an insn, not just the first one.
From-SVN: r77419
|
|
Josef Zlomek <zlomekj@suse.cz>
* Makefile.in (var-tracking.o): New.
* common.opt (fvar-tracking): New.
* flags.h (flag_var_tracking): New.
* gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
* opts.c (common_handle_option): Add OPT_fvar_tracking.
* print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
* rtl.c (note_insn_name): Likewise.
* rtl.def (VAR_LOCATION): New.
* rtl.h (NOTE_VAR_LOCATION): New.
(NOTE_VAR_LOCATION_DECL): New.
(NOTE_VAR_LOCATION_LOC): New.
(enum insn_note): NOTE_INSN_VAR_LOCATION was added.
(variable_tracking_main): New exported function.
* timevar.def (TV_VAR_TRACKING): New.
* toplev.c (enum dump_file_index): Added DFI_vartrack.
(dump_file): "vartrack" was added (-dV).
(flag_var_tracking): New.
(f_options): "var-tracking" was added.
(rest_of_handle_variable_tracking): New function.
(rest_of_compilation): Run variable tracking.
(process_options): If user has not specified flag_var_tracking set it
according to optimize, debug_info_level and debug_hooks.
* tree.h (frame_base_decl): New.
* var-tracking.c: New file.
* config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
(ia64_override_options): Set flags to run variable tracking in machine
dependent reorg instead of toplev.c.
(ia64_reorg): Run variable tracking if wanted.
* doc/invoke.texi: Mention variable tracking in -dV,
add and -fvar-tracking.
* doc/passes.texi: Added variable tracking pass.
Daniel Berlin <dberlin@dberlin.org>
* debug.h (struct gcc_debug_hooks): Added var_location debug hook.
* dbxout.c (dbx_debug_hooks): Likewise.
(xcoff_debug): Likewise.
* debug.c (do_nothing_debug_hooks): Likewise.
* dwarf2out.c (dwarf2_debug_hooks): Likewise.
* dwarfout.c (dwarf_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* final.c (final_scan_insn): Call var_location debug hook for each
NOTE_INSN_VAR_LOCATION.
Co-Authored-By: Daniel Berlin <dberlin@dberlin.org>
From-SVN: r77418
|
|
* flow.c (update_life_info): Allocate reg_deaths when called from
scheudler.
(attempt_auto_inc): Update life ranges accordingly.
From-SVN: r77415
|
|
PR debug/11816
* dwarf2out.c (gen_decl_die): Handle anonymous struct members.
From-SVN: r77411
|
|
From-SVN: r77410
|
|
info table in use.
* dwarf2out.c (output_loc_list): Don't use deltas if we have
a separate line info table in use.
Use the correct size for terminators.
(output_die): Use offset, not delta.
From-SVN: r77409
|
|
2004-02-06 H.J. Lu <hongjiu.lu@intel.com>
* doc/invoke.texi: Remove the pni option from -mfpmath=.
From-SVN: r77404
|
|
PR c++/14028
* g++.dg/parse/angle-bracket2.C: New test.
From-SVN: r77403
|