2005-07-04 Thomas Quinot <quinot@adacore.com>
* sem_ch4.adb (Transform_Object_Operation): For an actual that is an
overloaded function call, carry interpretations from the original tree
to the copy.
From-SVN: r101587
2005-07-04 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* sem_ch10.adb (Build_Limited_Views): A type declared with a private
type extension needs a limited view.
Remove previous restriction on private types available through the
limited-view (only tagged private types were previously allowed).
(Install_Withed_Unit): In the code that implements the
legality rule given in AI-377, exclude a child unit with the name
Standard, because it is a homonym of the Standard environment package.
From-SVN: r101586
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* par-ch9.adb (P_Task, P_Protected): Indicate that single task and
single protected declarations can have an interface list.
(P_Entry_Declaration): Add handler for Error_Resync, which can be raised
with seriously malformed entry declarations, and lead to compilation
abandoned messages.
From-SVN: r101583
2005-07-04 Vincent Celier <celier@adacore.com>
* mlib-prj.adb (Auto_Initialize): New constant String
(SALs_Use_Constructors): New Boolean function
(Build_Library): Call gnatbind with Auto_Initialize switch when
SALs_Use_Constructors returns True.
* mlib-tgt.ads: Minor reformatting
* mlib-utl.ads: Minor reformatting
* opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
From-SVN: r101582
2005-07-04 Vincent Celier <celier@adacore.com>
* make.adb (Change_To_Object_Directory): When unable to change the
current dir to the object directory, output the full path of the
directory.
From-SVN: r101580
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
controlled, indicate the expected type of the dereference that is
created for the call to Deep_Finalize, to prevent spurious errors when
the designated type is private and completed with a derivation from
another private type.
From-SVN: r101579
2005-07-04 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
Itypes. Itypes are really unexpected there.
(Build_TypeCode_Function): Generalise special processing for Itypes to
handle the case of numeric implicit base types as well as enumerated
ones.
From-SVN: r101578
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
* decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
<Pragma_Linker_Destructor>: Likewise.
* einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
Pragma_Linker_Destructor.
* gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
ATTR_LINK_DESTRUCTOR.
(static_ctors, static_dtors): New variables.
* misc.c (gnat_expand_body): Output current function as constructor
and destructor if requested.
* par-prag.adb: Add processing for pragma Linker_Constructor and
Linker_Destructor.
* sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
extracted from Check_Interrupt_Or_Attach_Handler.
(Check_Interrupt_Or_Attach_Handler): Invoke it.
Implement pragma Linker_Constructor and Linker_Destructor with the
help of Find_Unique_Parameterless_Procedure.
Replace Name_Alias with Name_Target for pragma Linker_Alias.
* snames.h, snames.ads, snames.adb:
Add Name_Linker_Constructor and Name_Linker_Destructor.
Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
* snames.adb: Remove Name_Alias.
* trans.c: Include cgraph.h.
(build_global_cdtor): New function.
(Compilation_Unit_to_gnu): Build global constructor and destructor if
needed.
(tree_transform) <N_Identifier>: Substitute renaming of view-conversions
of objects too.
(addressable_p) <COMPONENT_REF>: Unconditionally test
DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
* utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
variable if it is external.
(static_ctors, static_dtors): New global variables.
(process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
<ATTR_LINK_DESTRUCTOR>: Likewise.
(end_subprog_body): Chain function as constructor and destructor
if requested.
* exp_util.adb (Force_Evaluation): Unconditionally invoke
Remove_Side_Effects with Variable_Ref set to true.
(Remove_Side_Effects): Handle scalar types first. Use a renaming
for non-scalar types even if Variable_Ref is true and for class-wide
expressions.
From-SVN: r101576
2005-07-04 Gary Dismukes <dismukes@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* checks.adb (Null_Exclusion_Static_Checks): In the case of
N_Object_Declaration, only perform the checks if the Object_Definition
is not an Access_Definition.
* sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
where the parent of an the access definition is an N_Object_Declaration
when determining the Associated_Node_For_Itype and scope of an
anonymous access-to-subprogram type.
* exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
Corresponding_Spec on the body created for a null procedure. Add ???
comment. Remove New_Copy_Tree call on body argument to
Set_Body_To_Inline.
* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
discriminants, use the type of the actual as well, because the
discriminants may be read by the called subprogram.
* sem_ch3.adb (Access_Type_Declaration): If the designated type is an
access type we do not need to handle non-limited views.
(Build_Derived_Record_Type): Additional check to check that in case of
private types, interfaces are only allowed in private extensions.
From-SVN: r101575
2005-07-04 Joel Brobecker <brobecker@adacore.com>
* a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
This prevents us from hitting a limitation during the debug info
generation when using stabs.
(Prims_Ptr): Likewise.
From-SVN: r101574
2005-07-04 Vincent Celier <celier@adacore.com>
* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
Remove all auto-initialization code, as this is now done through the
constructor mechanism.
* adaint.h, adaint.c (__gnat_binder_supports_auto_init,
__gnat_sals_init_using_constructors): New functions.
* bindgen.adb (Gen_Output_File_Ada): Generate pragmas
Linker_Constructor and Linker_Destructor when switch -a is used.
* bindusg.adb: Add line for new switch -a
* gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
(Gnatbind): When switch -a is used, check if it is allowed
* switch-b.adb (Scan_Binder_Switches): Process new switch -a
From-SVN: r101573
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
* s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
fetch a code-range descriptor associated with the machine state. On
failure set the machine state's PC to 0; on success, pass the
descriptor to exc_virtual_unwind.
* init.c (Tru64 section): New function __gnat_set_code_loc.
From-SVN: r101572
* g-expect-vms.adb, g-expect.ads, g-expect.adb
(Get_Command_Output): New subprogram to launch a process and get its
standard output as a string.
From-SVN: r101571
objc/
* Make-lang.in (cc1plus-checksum.c): Use
build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
objcp/
* Make-lang.in (cc1plus-checksum.c): Use
build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
From-SVN: r101553
PR tree-optimization/22029 (and 22135)
* tree-pretty-print.c (dump_generic_node): Check that the node is not
a phi node before calling dump_vops.
From-SVN: r101548
* tree-dump.h (dump_string_field): Declare.
* tree-dump.c: Use it instead of dump_string.
(dump_string_field): Make non-static.
cp/
* dump.c: Use dump_string_field.
From-SVN: r101547
* config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
up the minimal CFG stuff always when optimize > 0. Call
split_all_insns_noflow in PIC case if needed.
From-SVN: r101546
PR fortran/20842
* io.c (match_dt_element): Do not allow END tag in PRINT or
WRITE statement.
* gfortran.dg/io_invalid_1.f90: New test.
From-SVN: r101545
PR c++/18279
* c-decl.c (c_write_global_declarations): Dump contents of
external scope to.
* tree-dump.c (dequeue_and_dump): Dump abstract origin of a
decl.
<TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>,
<LABEL_EXPR>,
<GOTO_EXPR>, <SWITCH_EXPR>: Add.
(dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
is enabled.
Co-Authored-By: Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
From-SVN: r101544
* c-common.h (GCC_DIAG_STYLE): Define.
* c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC
version for format checking to 4.1.
* c-format.c: Include toplev.h after c-common.h.
(enum format_type): Add gcc_tdiag_format_type.
(gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
(format_types_orig): Add gcc_tdiag.
(init_dynamic_diag_info): Support gcc_tdiag formats.
(handle_format_attribute): Likewise.
* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
(GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC
version for format checking to 4.1.
(warning0, warning, error, pedwarn, sorry): Use
ATTRIBUTE_GCC_DIAG.
* config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
(finish_aliases_1): Do not use %qE.
* config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
Correct format bugs.
* config/v850/v850-protos.h (v850_output_aligned_bss): Change size
parameter to unsigned HOST_WIDE_INT.
* config/v850/v850.c (v850_output_aligned_bss): Likewise.
cp:
* cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
minimum GCC version for format checking to 4.1.
testsuite:
* gcc.dg/format/gcc_diag-1.c: Update.
From-SVN: r101543
* config/alpha/alpha.c (alpha_legitimize_address): Check for
TLS_MODEL_NONE.
(alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
From-SVN: r101536
2005-07-02 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/14490
* fold-const.c (fold_binary): Handle the return value of
fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
From-SVN: r101535
* tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
a eliminate type conversion which feeds an equality comparison
if the original type or either operand in the comparison is a
function pointer.
* gcc.dg/tree-ssa/pr22051-1.c: New test.
* gcc.dg/tree-ssa/pr22051-2.c: New test.
From-SVN: r101534
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 Zack Weinberg <zack@codesourcery.com>
Joseph S. Myers <joseph@codesourcery.com>
* toplev.c (default_tree_printer): Handle setting location with
'+' flag.
* c-objc.common.c (c_tree_printer): Likewise.
* c-format.c (gcc_diag_flag_specs): Add '+'.
(gcc_cdiag_char_table): Allow '+' flag for tree formats.
(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
formats.
* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
config/v850/v850.c, function.c, stor-layout.c, toplev.c,
tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end
of diagnostics. Use %q+D not %s for a decl. Do not pass excess
format arguments where %J is used without %D.
cp:
* error.c (location_of): Add comment.
(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
or cp_pedwarn_at. Mark up some diagnostic strings with N_.
java:
* class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
flag for quoting.
objc:
* objc-act.c: Use '+' flag instead of %J. Use 'q' flag for
quoting.
testsuite:
* gcc.dg/format/gcc_diag-1.c: Update.
From-SVN: r101532