2013-01-04 Thomas Quinot <quinot@adacore.com>
* sinfo.ads: Minor documentation update.
2013-01-04 Thomas Quinot <quinot@adacore.com>
* sem_ch3.adb, einfo.adb (Analyze_Object_Declaration): Do not set Ekind
before resolving initialization expression.
2013-01-04 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb (Generate_Index_Checks): Delay the generation of
the check for an indexed component where the prefix mentions
Loop_Entry until the attribute has been properly expanded.
* exp_ch5.adb (Expand_Loop_Entry_Attributes): Perform minor
decoration of the constant that captures the value of Loop_Entry's
prefix at the entry point into a loop. Generate index checks
for an attribute reference that has been transformed into an
indexed component.
2013-01-04 Thomas Quinot <quinot@adacore.com>
* exp_prag.adb, exp_util.adb, exp_util.ads, freeze.adb, exp_aggr.adb,
sem_ch13.adb (Exp_Aggr.Collect_Initialization_Statements): Nothing to
do if Obj is already frozen.
(Exp_Util.Find_Init_Call): Rename to...
(Exp_Util.Remove_Init_Call): New subprogram, renamed from
Find_Init_Call. Remove the initialization call from the enclosing
list if found, and if it is from an Initialization_Statements
attribute, reset it.
(Exp_Util.Append_Freeze_Action): Minor code reorganization.
(Exp_Util.Append_Freeze_Actions): Ensure a freeze node has been
allocated (as is already done in Append_Freeze_Action).
(Freeze.Freeze_Entity): For an object with captured
Initialization_Statements and non-delayed freezeing, unwrap the
initialization statements and insert and them directly in the
enclosing list.
(Sem_Ch13.Check_Address_Clause): For an object
with Initialization_Statements and an address clause, unwrap the
initialization statements when moving them to the freeze actions.
From-SVN: r194887
PR c++/53650
* call.c (type_has_extended_temps): New.
* cp-tree.h: Declare it.
* decl.c (check_initializer): Use build_aggr_init for arrays
if it is false.
* init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic.
From-SVN: r194860
2013-01-03 Richard Biener <rguenther@suse.de>
Revert
2013-01-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/55857
* tree-vect-stmts.c (vectorizable_load): Do not setup
re-alignment for invariant loads.
2013-01-02 Richard Biener <rguenther@suse.de>
* tree-vect-stmts.c (vectorizable_load): When vectorizing an
invariant load do not generate a vector load from the scalar
location.
From-SVN: r194856
2013-01-03 Richard Biener <rguenther@suse.de>
* tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
for not vectorizing.
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
not build INDIRECT_REFs, call get_name once only.
(vect_create_data_ref_ptr): Likewise. Dump base object kind
based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
From-SVN: r194853
2013-01-03 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb, aspects.ads: Add Aspect_Abstract_State to all the
relevant tables.
* einfo.ads, einfo.adb: Add Integrity_Level and Refined_State to
the description of fields (Abstract_States): New routine.
(Integrity_Level): New routine.
(Has_Property): New routine.
(Is_Input_State): New routine.
(Is_Null_State): New routine.
(Is_Output_State): New routine.
(Is_Volatile_State): New routine.
(Refined_State): New routine.
(Set_Abstract_States): New routine.
(Set_Integrity_Level): New routine.
(Set_Refined_State): New routine.
(Write_Field8_Name): Add proper output for E_Abstract_State.
(Write_Field9_Name): Add proper output for E_Abstract_State.
(Write_Field25_Name): Add proper output for E_Package.
* lib-xref.ads: Add new letter for an abstract state.
* par-prag.adb: Add pragma Abstract_State to the list of pragma
that do not need special processing by the parser.
* sem_ch13.adb (Analyze_Aspect_Specifications): Convert
aspect Abstract_State into a pragma without any form
of legality checks. The work is done by Analyze_Pragma.
(Check_Aspect_At_Freeze_Point): Aspect Abstract_State does not
require delayed analysis.
* sem_prag.adb: Add a value for pragma Abstract_State in table
Sig_Flags.
(Analyze_Pragma): Add legality checks for pragma
Abstract_State. Analysis of individual states introduces a state
abstraction entity into the visibility chain.
* snames.ads-tmpl: Add new names for abstract state and
integrity. Add new pragma id for abstract state.
2013-01-03 Bob Duff <duff@adacore.com>
* table.adb (Reallocate): Calculate new Length in
Long_Integer to avoid overflow.
2013-01-03 Thomas Quinot <quinot@adacore.com>
* sem_ch3.adb, sinfo.ads, freeze.adb, sem_ch4.adb, exp_aggr.adb
(Sem_Ch3.Analyze_Object_Declaration): Set Ekind early so that
it is set properly when expanding the initialization expression.
(Freeze.Check_Address_Clause): Transfer initialization expression
to an assignment in the freeze actions, so that the object is
initialized only after being elaborated by GIGI.
(Sinfo (comments), Sem_Ch4.Analyze_Expression_With_Actions): Allow
a Null_Statement as the expression in an Expression_With_Actions.
(Exp_Aggr.Collect_Initialization_Statements): New subprogram
shared by expansion of record and array aggregates, used to
capture statements for an aggregate used to initalize an object
into an Expression_With_Actions (which acts as a container for
a list of actions).
(Exp_Aggr.Convert_Aggr_In_Obj_Decl): Use the above to
capture initialization statements, instead of the previously
existing loop which left freeze nodes out of the capturing
construct (causing out of order elaboration crashes in GIGI).
(Exp_Aggr.Expand_Array_Aggregate): Use the above to capture
initialization statements (this was previously not done for
arrays). Also do not unconditionally prevent in place expansion
for an object with address clause.
From-SVN: r194851
2013-01-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/55857
* tree-vect-stmts.c (vectorizable_load): Do not setup
re-alignment for invariant loads.
* gcc.dg/vect/pr55857-1.c: New testcase.
* gcc.dg/vect/pr55857-2.c: Likewise.
From-SVN: r194850
2013-01-03 Thomas Quinot <quinot@adacore.com>
* gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Check that
a record extension has the same scalar storage order as the parent type.
2013-01-03 Thomas Quinot <quinot@adacore.com>
* exp_ch4.adb: Add comment.
2013-01-03 Vincent Celier <celier@adacore.com>
* prj.adb: Minor spelling error correction in comment.
2013-01-03 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (GNATCmd): If a single main has been specified
as an absolute path, use its simple file name to find specific
switches, instead of the absolute path.
2013-01-03 Javier Miranda <miranda@adacore.com>
* sem_warn.adb (Warn_On_Overlapping_Actuals): For overlapping
parameters that are record types or array types generate warnings
only compiling under -gnatw.i
* opt.ads (Extensions_Allowed): Restore previous documentation.
2013-01-03 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Do_Autoconf): If Target is specified in the
main project, but not on the command line, use the Target in
the project to invoke gprconfig in auto-configuration.
* makeutl.ads (Default_Config_Name): New constant String.
2013-01-03 Arnaud Charlet <charlet@adacore.com>
* usage.adb: Minor: fix typo in usage.
2013-01-03 Thomas Quinot <quinot@adacore.com>
* sem_ch13.adb (Analyze_Record_Representation_Clause): Reject
an illegal component clause for an inherited component in a
record extension.
From-SVN: r194849
2013-01-03 Emmanuel Briot <briot@adacore.com>
* xref_lib.adb (Parse_Identifier_Info): Fix handling of arrays, which
have information in the ALI file for both the index and the component
types.
2013-01-03 Emmanuel Briot <briot@adacore.com>
* projects.texi: Fix error in documenting the project path
computed for an aggregate project.
2013-01-03 Javier Miranda <miranda@adacore.com>
* sem_warn.adb (Warn_On_Overlapping_Actuals): Adding documentation
plus restricting the functionality of this routine to cover the
cases described in the Ada 2012 reference manual. The previous
extended support is now available under -gnatX.
* s-tassta.adb (Finalize_Global_Tasks): Addition of a dummy
variable to call Timed_Sleep. Required to avoid warning on
overlapping out-mode actuals.
* opt.ads (Extensions_Allowed): Update documentation.
2013-01-03 Tristan Gingold <gingold@adacore.com>
* s-arit64.ads: Use Multiply_With_Ovflo_Check as __gnat_mulv64.
* arit64.c: Removed
* gcc-interface/Makefile.in: Remove reference to arit64.c.
2013-01-03 Thomas Quinot <quinot@adacore.com>
* checks.adb, checks.ads (Apply_Address_Clause_Check): The check must
be generated at the start of the freeze actions for the entity, not
before (or after) the freeze node.
2013-01-03 Thomas Quinot <quinot@adacore.com>
* exp_aggr.adb (Exp_Aggr.Convert_Aggregate_In_Obj_Decl):
Reorganize code to capture initialization statements in a block,
so that freeze nodes are excluded from the captured block.
From-SVN: r194848
2013-01-03 Thomas Quinot <quinot@adacore.com>
* exp_ch11.adb: Minor reformatting.
2013-01-03 Thomas Quinot <quinot@adacore.com>
* exp_util.adb, einfo.adb, einfo.ads, freeze.adb, exp_aggr.adb,
sem_ch13.adb (Einfo.Initialization_Statements,
Einfo.Set_Initialization_Statements): New entity attribute
for objects.
(Exp_Util.Find_Init_Call): Handle case of an object initialized
by an aggregate converted to a block of assignment statements.
(Freeze.Check_Address_Clause): Do not clear Has_Delayed_Freeze
even for objects that require a constant address, because the
address expression might involve entities that have yet to be
elaborated at the point of the object declaration.
(Exp_Aggr.Convert_Aggregate_In_Obj_Decl): For a type that does
not require a transient scope, capture the assignment statements
in a block so that they can be moved down after elaboration of
an address clause if needed.
(Sem_Ch13.Check_Constant_Address_Clause.Check_Expr_Constants,
case N_Unchecked_Conversion): Do not replace operand subtype with
its base type as this violates a GIGI invariant if the operand
is an identifier (in which case the etype of the identifier
is expected to be equal to that of the denoted entity).
2013-01-03 Javier Miranda <miranda@adacore.com>
* sem_util.ads, sem_util.adb (Denotes_Same_Object): Extend the
functionality of this routine to cover cases described in the Ada 2012
reference manual.
2013-01-03 Ed Schonberg <schonberg@adacore.com>
* sem_elab.adb (Set_Elaboration_Constraint): Handle properly
a 'Access attribute reference when the subprogram is called
Initialize.
2013-01-03 Arnaud Charlet <charlet@adacore.com>
* s-tpobop.adb (PO_Do_Or_Queue): Refine assertion, since a
select statement may be called from a controlled (e.g. Initialize)
operation and have abort always deferred.
From-SVN: r194847
2013-01-03 Robert Dewar <dewar@adacore.com>
* sem_ch8.adb, einfo.ads, einfo.adb: Minor code reorganization.
2013-01-03 Javier Miranda <miranda@adacore.com>
* exp_ch3.adb (Make_Controlling_Function_Wrappers): Exclude
internal entities associated with interfaces and add minimum
decoration to the defining entity of the generated wrapper to
allow overriding interface primitives.
* sem_disp.ads (Override_Dispatching_Operation): Addition of a
new formal (Is_Wrapper).
* sem_disp.adb (Override_Dispatching_Operation): When overriding
interface primitives the new formal helps identifying that the
new operation is not fully decorated.
From-SVN: r194846
2013-01-03 Thomas Quinot <quinot@adacore.com>
* sem_ch7.adb, sem_ch10.adb, einfo.adb, einfo.ads, sem_ch12.adb,
rtsfind.adb, sem_elab.adb, sem_ch4.adb, sem_ch8.adb
(Einfo.Is_Visible_Child_Unit, Einfo.Set_Is_Visible_Child_Unit):
Rename to Is_Visible_Lib_Unit, Set_Is_Visible_Lib_Unit, and
update spec accordingly (now also applies to root library units).
(Sem_Ch10.Analyze_Subunit.Analyze_Subunit_Context): Toggle above flag
on root library units, not only child units.
(Sem_Ch10.Install[_Limited]_Withed_Unit): Same.
(Sem_Ch10.Remove_Unit_From_Visibility): Reset Is_Visible_Lib_Unit
even for root library units.
(Sem_Ch8.Find_Expanded_Name): A selected component form whose prefix is
Standard is an expanded name for a root library unit.
2013-01-03 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb: Minor reformatting.
2013-01-03 Olivier Hainque <hainque@adacore.com>
* tracebak.c: Reinstate changes to support ppc-lynx178.
2013-01-03 Ed Schonberg <schonberg@adacore.com>
* atree.ads: Minor reformatting and documentation enhancement.
From-SVN: r194845
2013-01-03 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Expand_N_Object_Declaration): If the object has
a class-wide type and a renaming declaration is created for it,
preserve entity chain, which already contains generated internal
types. This ensures that freezing actions are properly generated
for all objects declared subsequently in the same scope, and
that debugging information is generated for them.
* sem_util.adb, sem_util.ads (we): New debugging routine, to
display entity chain of a given scope.
From-SVN: r194843
2013-01-03 Richard Biener <rguenther@suse.de>
PR lto/55848
* lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
prefer a built-in decl.
From-SVN: r194839
PR tree-optimization/55832
* fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
integer_{one,zero}_node.
* gcc.c-torture/compile/pr55832.c: New test.
Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r194836
PR middle-end/55198
* expr.c (expand_expr_real_1): Don't use bitfield extraction for non
BLKmode objects when EXPAND_MEMORY is specified.
From-SVN: r194822
2013-01-02 Sriraman Tallam <tmsriram@google.com>
* config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
in loop predicate.
(fold_builtin_cpu): Do not share cpu model decls across statements.
From-SVN: r194818