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)).
From-SVN: r184343
2012-02-17 Steve Baird <baird@adacore.com>
* sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and
Post'Class aspects can only be specified for a primitive operation
of a tagged type.
From-SVN: r184342
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.
2012-02-17 Hristian Kirtchev <kirtchev@adacore.com>
* 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.
From-SVN: r184341
2012-02-17 Thomas Quinot <quinot@adacore.com>
* sem_aggr.adb: Minor reformatting.
2012-02-17 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case.
2012-02-17 Vincent Pucci <pucci@adacore.com>
* sem_dim.adb (Is_Dim_IO_Package_Entity): New routine.
(Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity
call added.
(Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity
call added.
* s-dim.ads: Make package Pure.
2012-02-17 Gary Dismukes <dismukes@adacore.com>
* prj-nmsc.adb: Minor reformatting.
2012-02-17 Yannick Moy <moy@adacore.com>
* gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions.
From-SVN: r184338
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.
From-SVN: r184337
2012-02-17 Robert Dewar <dewar@adacore.com>
* sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb,
sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb,
exp_intr.adb, s-os_lib.adb: Minor reformatting.
2012-02-17 Ed Schonberg <schonberg@adacore.com>
* 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.
From-SVN: r184336
PR tree-optimization/52285
* tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
when deciding if a call is a tail call or tail recursion.
From-SVN: r184317
PR rtl-optimization/52208
* ira-costs.c (scan_one_insn): Don't decrease mem_cost
for MEMs with REG_EQUIV, if the MEM isn't general_operand.
From-SVN: r184310
PR tree-optimization/52255
* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
loop->header has virtual PHI, but exit_e->dest doesn't, add
virtual PHI to exit_e->dest and adjust all uses after the loop.
* gcc.c-torture/compile/pr52255.c: New test.
From-SVN: r184306
PR debug/52260
* dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
children with clone_tree_hash, not after it.
* g++.dg/debug/dwarf2/pr52260.C: New test.
From-SVN: r184303
PR middle-end/51929
* cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
a same_body_alias, also test whether e->callee isn't a former
or current clone of the decl this is a same body alias of.
* g++.dg/ipa/pr51929.C: New test.
From-SVN: r184301