Ulrich Weigand [Thu, 23 Feb 2012 10:16:39 +0000 (10:16 +0000)]
acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of HAVE_INITFINI_ARRAY to work around...
gcc/
* acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
HAVE_INITFINI_ARRAY to work around namespace pollution in
certain versions of newlib system headers.
* config.in: Regenerate.
* configure: Regenerate.
* config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
instead of HAVE_INITFINI_ARRAY.
libgcc/
* config/ia64/crtbegin.S: Use HAVE_INITFINI_ARRAY_SUPPORT
instead of HAVE_INITFINI_ARRAY.
* config/ia64/crtend.S: Likewise.
* exp_ch7.adb (Process_Declarations): Minor reformatting. Simplify the
entry point for renamings. Detect a case where a source object has
been transformed into a class-wide renaming of a call to
Ada.Tags.Displace.
* exp_util.adb (Is_Displacement_Of_Ctrl_Function_Result): New routine.
(Is_Finalizable_Transient): Minor reformatting.
(Is_Tag_To_Class_Wide_Conversion): Minor reformatting.
(Requires_Cleanup_Actions): Minor reformatting. Simplify the
entry point for renamings. Detect a case where a source object
has been transformed into a class-wide renaming of a call to
Ada.Tags.Displace.
* exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): New routine.
(Is_Tag_To_Class_Wide_Conversion): Minor reformatting.
2012-02-22 Ed Schonberg <schonberg@adacore.com>
* lib-load.adb (Load_Unit): If the prefix of the name in a
with-clause is a renaming, add a with-clause on the original unit.
* sem_ch10.adb (Build_Unit_Name): Remove code made obsolete by
new handling of renamings in with-clauses.
* exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on
stack-related finalizers.
2012-02-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Expression_Function): If the construct
is a completion, indicate that its formals are the formals of
a completion, and as such do not get a cross- reference entry.
(Analyze_Subprogram_Specification): Do not generate a definition
for the entity of an expression function, because it may be a
completion. Definition will be generated if needed when analyzing
the generated subprogram declaration.
2012-02-22 Vincent Celier <celier@adacore.com>
* make.adb (Check): When checking if an object file is in the
correct object directory, get the unit name from a previous call
to Check_Source_Info_In_ALI.
* makeutl.adb (Check_Source_Info_In_ALI): Return the name of
the unit when everything is OK, otherwise return No_Name.
* makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead
of Boolean
2012-02-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an
instance, the operator is visible if an operand is of some
numeric type which is not in use or directly visible, and the
other operand is a numeric literal.
2012-02-22 Tristan Gingold <gingold@adacore.com>
* init.c: Minor code clean up.
* gcc-interface/Make-lang.in: Update dependencies.
2012-02-22 Arnaud Charlet <charlet@adacore.com>
* gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node,
otherwise GCC will generate an object file.
2012-02-22 Vincent Celier <celier@adacore.com>
* projects.texi: Correct typo related to "**" in Source_Dirs.
Arnaud Charlet [Wed, 22 Feb 2012 13:53:38 +0000 (14:53 +0100)]
[multiple changes]
2012-02-22 Vincent Pucci <pucci@adacore.com>
* rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and
System_Dim_Child cases added.
* rtsfind.ads: Ada_Numerics,
Ada_Numerics_Generic_Elementary_Functions, System_Dim,
System_Dim_Float_IO and System_Dim_Integer_IO added to the list
of RTU_Id. Ada_Numerics_Child and System_Dim_Child added as
new RTU_Id subtypes.
* sem_dim.adb (Is_Dim_IO_Package_Entity): Use of
Rtsfind to verify the package entity is located either
in System.Dim.Integer_IO or in System.Dim.Float_IO.
(Is_Dim_IO_Package_Instantiation): Minor
changes. (Is_Elementary_Function_Call): Removed.
(Is_Elementary_Function_Entity): New routine.
(Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added.
* snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions
removed.
2012-02-22 Vincent Pucci <pucci@adacore.com>
* sem_prag.adb: Minor reformatting.
2012-02-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Find_Type_Name): When analyzing a private type
declaration that is the completion of a tagged incomplete type, do
not associate the class-wide type already created with the private
type to prevent order-of-elaboration issues in the back-end.
* exp_disp.adb (Find_Specific_Type): Find specific type of
a class-wide type, and handle the case of an incomplete type
coming either from a limited_with clause or from an incomplete
type declaration. Used when expanding a dispatchin call and
generating tag checks (minor refactoring).
Arnaud Charlet [Wed, 22 Feb 2012 13:47:23 +0000 (14:47 +0100)]
[multiple changes]
2012-02-22 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Entity): Do not perform type layout within
a generic unit.
2012-02-22 Eric Botcazou <ebotcazou@adacore.com>
* init.c (__gnat_error_handler) [Linux]: Map SIGBUS to
Storage_Error.
2012-02-22 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_N_Assignment_Statement): Reject an
assignment to a classwide type whose type is limited, as
can happen in an instantiation in programs that run afoul or
AI05-0087.
Georg-Johann Lay [Wed, 22 Feb 2012 09:25:35 +0000 (09:25 +0000)]
re PR rtl-optimization/50063 (DSE: wrong code for gcc.dg/torture/pta-ptrarith-3.c)
PR rtl-optimization/50063
* config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
and 2 (8-bit SP) in operand 2.
* config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
setup to use movhi_sp_r instead of vanilla move to write SP.
Adjust REG_CFA notes to superseed unspec.
(expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
of vanilla move.
As function body might contain CLI or SEI: Use irq_state 0 (IRQ
known to be off) only with TARGET_NO_INTERRUPTS. Never use
irq_state 1 (IRQ known to be on) here.
Richard Earnshaw [Tue, 21 Feb 2012 15:38:35 +0000 (15:38 +0000)]
re PR target/52294 ([ARM Thumb] generated asm code produces "branch out of range" error in gas with -Os -mcpu=cortex-a9)
PR target/52294
* thumb2.md (thumb2_shiftsi3_short): Split register and
immediate shifts. For register shifts tie operands 0 and 1.
(peephole2 for above): Check that register-controlled shifts
have suitably tied operands.
Richard Guenther [Tue, 21 Feb 2012 12:37:33 +0000 (12:37 +0000)]
re PR tree-optimization/52324 (Store motion no longer performed)
2012-02-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52324
* gimplify.c (gimplify_expr): When re-gimplifying expressions
do not gimplify a MEM_REF address operand if it is already
in suitable form.
Jakub Jelinek [Tue, 21 Feb 2012 09:24:42 +0000 (10:24 +0100)]
re PR tree-optimization/52318 (ICE: in execute_todo, at passes.c:1748 with -O3 -ftracer -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce and stpcpy_chk())
PR tree-optimization/52318
* gimple-fold.c (gimplify_and_update_call_from_tree): Add
vdef also to non-pure/const call stmts in the sequence.
Torvald Riegel [Mon, 20 Feb 2012 20:57:09 +0000 (20:57 +0000)]
libitm: Remove obsolete handling of prior serial lock corner cases in gl_wt.
libitm/
* method-gl.cc (gl_wt_dispatch::trycommit): Remove handling of
serial mode corner cases made obsolete by prior gtm_rwlock changes.
(gl_wt_dispatch.rollback): Same.
Richard Guenther [Mon, 20 Feb 2012 15:15:52 +0000 (15:15 +0000)]
re PR tree-optimization/52298 (ICE: verify_ssa failed: definition in block follows use)
2012-02-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52298
* tree-vect-stmts.c (vectorizable_store): Properly use
STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
outer loops.
(vectorizable_load): Likewise.
* tree-vect-data-refs.c (vect_analyze_data_ref_access):
Access DR_STEP after ensuring it is not NULL.
* gcc.dg/torture/pr52298.c: New testcase.
* gcc.dg/vect/pr52298.c: Likewise.
Jakub Jelinek [Mon, 20 Feb 2012 12:19:47 +0000 (13:19 +0100)]
re PR tree-optimization/52286 (wrong code bug)
PR tree-optimization/52286
* fold-const.c (fold_binary_loc): For (X & C1) | C2
optimization use double_int_to_tree instead of build_int_cst_wide,
rewrite to use double_int vars.
Rainer Orth [Mon, 20 Feb 2012 11:47:25 +0000 (11:47 +0000)]
Enable initfini array support on Solaris (PR target/50166)
* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
Define _start.
Remove -e 0 from $gcc_cv_ld invocation.
Only use __GLIBC_PREREQ if defined.
Enable on Solaris since Solaris 8 patch.
(gcc_SUN_LD_VERSION): New macro.
* configure.ac (ld_ver) <*-*-solaris2*>: Refer to
gcc_SUN_LD_VERSION for version number format.
* configure: Regenerate.
* varasm.c (get_elf_initfini_array_priority_section): Set
SECTION_NOTYPE for non-default priority.
Use get_section instead of get_unnamed_section to emit
.init_array/.fini_array with default priority.
gcc/
* config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
(mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
(mips_start_unique_function, mips_output_mips16_rdhwr)
(mips_code_end): New functions.
(TARGET_ASM_CODE_END): Define.
Arnaud Charlet [Fri, 17 Feb 2012 14:26:20 +0000 (15:26 +0100)]
[multiple changes]
2012-02-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Legal_Copy): If layout is not
determined in the front-end, do not emit error message when
by-reference actual is potentially unaligned.
* gcc-interface/decl.c (gnat_to_gnu_field): Better error message for
illegal representation clause on tagged or aliased component, or on
by-reference type with forced alignment.
2012-02-17 Nicolas Roche <roche@adacore.com>
* gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is
propagated by gnatlib-sjlj and gnatlib-zcx targets.
* gcc-interface/Make-lang.in: Update dependencies.
2012-02-17 Thomas Quinot <quinot@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): For an
instantiation in an RCI library unit, omit the instance body
if the RCI library unit is the instance itself (E.2.3(18)),
but include the body if the instantiation is within the RCI
declaration (12.3(12)).
Arnaud Charlet [Fri, 17 Feb 2012 14:15:46 +0000 (15:15 +0100)]
[multiple changes]
2012-02-17 Yannick Moy <moy@adacore.com>
* gnat_rm.texi: Minor shuffling.
2012-02-17 Ed Schonberg <schonberg@adacore.com>
* aspects.adb: Expression functions can carry pre/postconditions.
* par-ch6.adb (P_Subprogram): look for optional pre/postconditions
in an expression function.
* sem_prag (Check_Precondition_Postcondition): legal on expression
functions.
2012-02-17 Vincent Pucci <pucci@adacore.com>
* a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb,
* a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb,
* a-convec.adb, a-coorma.adb (Adjust): New routine.
(Constant_Reference): Increment Busy and Lock counters.
(Reference): Increase Busy and Lock counters.
(Finalize): New routine.
* a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb:
(Adjust): New routine. (Constant_Reference): Increment Busy
and Lock counters.
(Finalize): New routine.
* a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads,
* a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads,
* a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads,
* a-coorma.ads, a-coorse: Controlled component added to the
reference types.
2012-02-17 Robert Dewar <dewar@adacore.com>
* restrict.adb (Check_Restriction): Add special handling for
No_Obsolescent_Features.
* exp_util.adb (Find_Finalize_Address): When dealing with an
internally built full view for a type with unknown discriminants,
use the original record type.
Arnaud Charlet [Fri, 17 Feb 2012 13:59:28 +0000 (14:59 +0100)]
[multiple changes]
2012-02-17 Yannick Moy <moy@adacore.com>
* gnat_ugn.texi: Fix typos.
2012-02-17 Pascal Obry <obry@adacore.com>
* prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an
aggregate is not Externally_Built.
2012-02-17 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregate): If a composite
component has a box association, copy the default value using
the current scope as the scope of internal types, to prevent
scoping anomalies in gigi.
* sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the
old operation is abstract, the relevant type is not abstract,
and the new subprogram fails to override.