1. 29 Jul, 2014 15 commits
    • [multiple changes] · b8b2d982
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* exp_attr.adb, types.ads, types.h, exp_ch11.adb, a-except.adb,
      	a-except-2005.adb: Add new reason code PE_Stream_Operation_Not_Allowed,
      	and then use it when a stream operation is used from a library generic
      	when the restriction (No_Streams) is active.
      
      2014-07-29  Thomas Quinot  <quinot@adacore.com>
      
      	* projects.texi: Fix minor typo.
      
      2014-07-29  Yannick Moy  <moy@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute): Fix generation of warning.
      
      2014-07-29  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_ch5.adb (Check_Unreachable_Code): Do not remove code in
      	CodePeer mode.
      
      2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Find_Last_Init): Add local variable
      	Deep_Init_Found. Check the statement immediately following the
      	declaration if [Deep_]Initialization was not found.
      
      2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Is_Aliased): It appears that
      	'reference-d and renamed objects still play some role in Boolean
      	expression with actions and cannot be finalized immediately.
      
      2014-07-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_dbug.adb (Qualify_Needed):  For debugging purposes,
      	Loop names are not part of the full qualification of entity names.
      
      From-SVN: r213164
      Arnaud Charlet committed
    • [multiple changes] · 02bb0765
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* einfo.adb (Has_Protected): Test base type.
      	* sem_ch4.adb (Analyze_Allocator): Reorganize code to make sure
      	that we always properly check No_Protected_Type_Allocators.
      
      2014-07-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Defining_Entity):	Now applies to
      	loop declarations as well.
      	* exp_ch5.adb (Expand_Loop_Statement): Apply Qualify_Entity_Names
      	to an iterator loop, because it may contain local renaming
      	declarations that require debugging information.
      
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* sem_util.ads, exp_util.adb, sem_attr.adb: Minor reformatting.
      
      From-SVN: r213163
      Arnaud Charlet committed
    • einfo.ads, einfo.adb (Static_Real_Or_String_Predicate): New function · fc3a3f3b
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* einfo.ads, einfo.adb (Static_Real_Or_String_Predicate): New function
      	(Set_Static_Real_Or_String_Predicate): New procedure
      	* sem_ch13.adb (Build_Predicate_Functions): Accomodate static
      	string predicates (Is_Predicate_Static): Handle static string
      	predicates.
      	* sem_eval.adb (Real_Or_String_Static_Predicate_Matches):
      	New procedure (Check_Expression_Against_Static_Predicate):
      	Deal with static string predicates, now fully implemented
      	(Eval_Relational_Op): Allow string equality/inequality as static
      	if not comes from source.
      
      From-SVN: r213162
      Robert Dewar committed
    • sem_aggr.adb, [...]: General cleanup of static predicate handling. · 60f908dd
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* sem_aggr.adb, exp_ch5.adb, sem_ch5.adb, exp_util.adb, einfo.adb,
      	einfo.ads, sem_util.adb, sem_attr.adb, sem_case.adb, sem_eval.adb,
      	sem_eval.ads, sem_ch13.adb: General cleanup of static predicate
      	handling. Change name of Discrete_Predicate to
      	Discrete_Static_Predicate, and replace testing of the presence of this
      	field by testing the flag Has_Static_Expression.
      
      From-SVN: r213161
      Robert Dewar committed
    • gnat_rm.texi: Document pragma Unevaluated_Use_Of_Old. · 96e90ac1
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Document pragma Unevaluated_Use_Of_Old.
      	* opt.adb: Handle Uneval_Old.
      	* opt.ads (Uneval_Old, Uneval_Old_Config): New variables.
      	* par-prag.adb: Add dummy entry for pragma Unevaluated_Use_Of_Old.
      	* sem.ads (Save_Uneval_Old): New field in Scope_Stack_Entry.
      	* sem_attr.adb (Uneval_Old_Msg): New procedure.
      	* sem_ch8.adb (Push_Scope): Save Uneval_Old.
      	(Pop_Scope): Restore Uneval_Old.
      	* sem_prag.adb (Analyze_Pragma, case Unevaluated_Use_Of_Old):
      	Implemented.
      	* snames.ads-tmpl: Add entries for pragma Unevaluated_Use_Of_Old
      	Add entries for Name_Warn, Name_Allow.
      
      From-SVN: r213160
      Robert Dewar committed
    • sem_aggr.adb (Resolve_Array_Aggregate): Change Is_Static_Range to Is_OK_Static_Range. · edab6088
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* sem_aggr.adb (Resolve_Array_Aggregate): Change Is_Static_Range
      	to Is_OK_Static_Range.
      	* sem_attr.adb (Eval_Attribute): Make sure we properly flag
      	static attributes (Eval_Attribute, case Size): Handle size of
      	zero properly (Eval_Attribute, case Value_Size): Handle size of
      	zero properly.
      	* sem_ch13.adb: Minor reformatting.
      	* sem_ch3.adb (Process_Range_Expr_In_Decl): Change
      	Is_Static_Range to Is_OK_Static_Range.
      	* sem_eval.adb (Eval_Case_Expression): Total rewrite, was
      	wrong in several ways (Is_Static_Range): Moved here from spec
      	(Is_Static_Subtype): Moved here from spec Change some incorrect
      	Is_Static_Subtype calls to Is_OK_Static_Subtype.
      	* sem_eval.ads: Add comments to section on
      	Is_Static_Expression/Raises_Constraint_Error (Is_OK_Static_Range):
      	Add clarifying comments (Is_Static_Range): Moved to body
      	(Is_Statically_Unevaluated): New function.
      	* sem_util.ads, sem_util.adb (Is_Preelaborable_Expression): Change
      	Is_Static_Range to Is_OK_Static_Range.
      	* sinfo.ads: Additional commments for Is_Static_Expression noting
      	that clients should almost always use Is_OK_Static_Expression
      	instead. Many other changes throughout front end units to obey
      	this rule.
      	* tbuild.ads, tbuild.adb (New_Occurrence_Of): Set Is_Static_Expression
      	for enumeration literal.
      	* exp_ch5.adb, sem_intr.adb, sem_ch5.adb, exp_attr.adb, exp_ch9.adb,
      	lib-writ.adb, sem_ch9.adb, einfo.ads, checks.adb, checks.ads,
      	sem_prag.adb, sem_ch12.adb, freeze.adb, sem_res.adb, exp_ch4.adb,
      	exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, exp_aggr.adb, sem_cat.adb:
      	Replace all occurrences of Is_Static_Expression by
      	Is_OK_Static_Expression.
      
      From-SVN: r213159
      Robert Dewar committed
    • exp_ch4.adb (Process_Transient_Object): Remove constant In_Cond_Expr, use its… · c5c780e6
      exp_ch4.adb (Process_Transient_Object): Remove constant In_Cond_Expr, use its initialization expression in place.
      
      2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Process_Transient_Object): Remove constant
      	In_Cond_Expr, use its initialization expression in place.
      	* exp_ch7.adb (Process_Declarations): There is no need to check
      	that a transient object being hooked is controlled as it would
      	not have been hooked in the first place.
      	* exp_util.adb (Is_Aliased): 'Reference-d or renamed transient
      	objects are not considered aliased when the related context is
      	a Boolean expression_with_actions.
      	(Requires_Cleanup_Actions): There is no need to check that a transient
      	object being hooked is controlled as it would not have been hooked in
      	the first place.
      
      From-SVN: r213158
      Hristian Kirtchev committed
    • [multiple changes] · e2bc5465
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* errout.adb: Minor reformatting.
      
      2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch3.adb (Default_Initialize_Object): Add new variables
      	Abrt_Blk and Dummy. Generate a dummy temporary when aborts are
      	not allowed to ensure the symmetrical generation of symbols.
      	* exp_ch7.adb (Build_Object_Declarations): Remove variables A_Expr
      	and E_Decl. Add new variables Decl and Dummy. Generate a dummy
      	temporary when aborts are not allowed to ensure symmertrical
      	generation of symbols.
      	* exp_intr.adb (Expand_Unc_Deallocation): Add new variable
      	Dummy. Generate a dummy temporary when aborts are not allowed
      	to ensure symmertrical generation of symbols.
      
      2014-07-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_dbug.adb (Debug_Renaming_Declaration): For an object
      	renaming, indicate that the renamed entity itself needs debug
      	information. This is necessary if that entity is a temporary,
      	e.g. part of the expansion of an explicit dereference in an
      	iterator.
      
      From-SVN: r213157
      Arnaud Charlet committed
    • [multiple changes] · 414c6563
      2014-07-29  Thomas Quinot  <quinot@adacore.com>
      
      	* errout.adb (Set_Error_Posted): When propagating flag to
      	an enclosing named association, also propagate to the parent
      	of that node, so that named and positional associations are
      	treated consistently.
      
      2014-07-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Resolve_Attribute, case 'Update):  Set
      	Do_Range_Check properly on array component expressions that
      	have a scalar type. In GNATprove mode, only checks on scalar
      	components must be marked by the front-end.
      
      2014-07-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Type_Conversion): If the type of the
      	expression is a limited view, use the non-limited view when
      	available.
      
      2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Case_Expression): Mark the generated
      	case statement as coming from a conditional expression.
      	(Expand_N_If_Expression): Mark the generated if statement as
      	coming from a conditional expression.
      	* exp_ch5.adb (Expand_N_Case_Statement): Do not process controlled
      	objects found in case statement alternatives when the case
      	statement is actually a case expression.
      	(Expand_N_If_Statement):
      	Do not process controlled objects found in an if statement when
      	the if statement is actually an if expression.
      	* sinfo.adb (From_Conditional_Expression): New routine.
      	(Set_From_Conditional_Expression): New routine.
      	* sinfo.ads Add new semantic flag From_Conditional_Expression and
      	update related nodes.
      	(From_Conditional_Expression): New routine along with pragma Inline.
      	(Set_From_Conditional_Expression): New routine along with pragma Inline.
      
      From-SVN: r213156
      Arnaud Charlet committed
    • [multiple changes] · 0382062b
      2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove
      	formal parameter Obj_Id and update the comment on usage. Renamed
      	Obj_Typ to Func_Typ and update all occurrences.
      	(Find_Last_Init): Remove formal parameter Decl and update the comment
      	on usage.
      	Remove local constants Obj_Id and Obj_Typ. Remove local variables
      	Init_Typ and Is_Conc. Remove the extraction of the initialization type.
      	(Find_Last_Init_In_Block): Remove formal parameter
      	Init_Typ and update the comment on usage.
      	(Is_Init_Call): Remove formal parameter Init_Typ and update the comment
      	on usage. Check whether the procedure call is an initialization
      	procedure of either the object type or the initialization type.
      	(Is_Init_Proc_Of): New routine.
      	(Process_Object_Declaration): Obj_Id and Obj_Typ are now global to this
      	routine. Add new variable Init_Typ. Add circuitry to extract the object
      	type as well as the initialization type.
      
      2014-07-29  Robert Dewar  <dewar@adacore.com>
      
      	* sem_case.adb: Minor reformatting.
      	* sem_aux.ads: Minor reformatting.
      
      2014-07-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sinfo.adb (Set_Else_Actions, Set_Then_Actions): Set parent
      	pointer on these fields, even though they are semantic, because
      	subsequent analysis and expansion of action nades may require
      	exploring the tree, for example to locate a node to be wrapped
      	when a function with controlled result is called.
      
      2014-07-29  Claire Dross  <dross@adacore.com>
      
      	* sem_aux.adb (Get_Binary_Nkind): Use case on
      	Name_Id instead of an intermediate string.
      	(Get_Unary_Nkind): Use case on Name_Id instead of an intermediate
      	string.
      
      2014-07-29  Sergey Rybin  <rybin@adacore.com frybin>
      
      	* gnat_ugn.texi (gnatelim, gnatstub, gnatmetric): Add note
      	about processing sources with preprocessor directives.
      
      From-SVN: r213155
      Arnaud Charlet committed
    • tree-sra.c (sra_modify_constructor_assign): Change type of stmt parameter to gimple. · 56386ab9
      2014-07-29  Martin Jambor  <mjambor@suse.cz>
      
      	* tree-sra.c (sra_modify_constructor_assign): Change type of stmt
      	parameter to gimple.
      	(sra_modify_assign): Likewise.
      
      From-SVN: r213154
      Martin Jambor committed
    • re PR middle-end/52478 (-ftrapv calls the wrong functions in libgcc) · e05531ef
      2014-07-29  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/52478
      	* expr.c (expand_expr_real_2): Revert last change.
      
      From-SVN: r213153
      Richard Biener committed
    • cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data. · 3339f0bc
      	* cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
      	* cgraph.h (cgraph_indirect_call_info): Add speculative data.
      	* gimple-fold.c (fold_gimple_assign): Fix check for virtual
      	call.
      	* ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
      	(contains_type_p): Forward declare.
      	(polymorphic_call_target_hasher::hash): Hash speculative info.
      	(polymorphic_call_target_hasher::equal): Compare speculative info.
      	(get_class_context): Handle speuclation.
      	(contains_type_p): Update.
      	(get_polymorphic_call_info_for_decl): Update.
      	(walk_ssa_copies): Break out from ...
      	(get_polymorphic_call_info): ... here; set speculative context
      	before giving up.
      	* ipa-prop.c (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info):
      	Stream speculative context.
      	* ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
      	(SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
      	SPECULATIVE_MAYBE_DERIVED_TYPE).
      	(possible_polymorphic_call_targets overriders): Update.
      	(dump_possible_polymorphic_call_targets overriders): Update.
      	(dump_possible_polymorphic_call_target_p overriders): Update.
      
      From-SVN: r213152
      Jan Hubicka committed
    • gimple-fold.c (fold_gimple_assign): Fix condition guarding ipa-devirt path; fix thinko there. · f8a39967
      	* gimple-fold.c (fold_gimple_assign): Fix condition guarding
      	ipa-devirt path; fix thinko there.
      
      From-SVN: r213150
      Jan Hubicka committed
    • Daily bump. · eb5453a5
      From-SVN: r213145
      GCC Administrator committed
  2. 28 Jul, 2014 16 commits
  3. 27 Jul, 2014 9 commits