Commit Graph

142398 Commits

Author SHA1 Message Date
Ajit Agarwal
3927713bcf split-path-1.c: Fix the testcase to avoid undefined behaviour.
* gcc.dg/tree-ssa/split-path-1.c: Fix the testcase
	to avoid undefined behaviour.

From-SVN: r230555
2015-11-18 09:54:16 -07:00
Cesar Philippidis
f25c3cc06c cp-gimplify.c (cp_fold_r): Add support for OACC_LOOP.
gcc/cp/
	* cp-gimplify.c (cp_fold_r): Add support for OACC_LOOP.

From-SVN: r230554
2015-11-18 08:31:04 -08:00
Alan Modra
a3ff5f8739 rs6000.c (use_toc_relative_ref): Ignore type-limits warning.
2015-11-18  Alan Modra  <amodra@gmail.com>

        * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
        type-limits warning.

From-SVN: r230551
2015-11-18 10:31:18 -05:00
Richard Sandiford
1fcb9641fd PR 68406: Avoid problem with older host compilers
Older compilers require the Key typedef to be expanded for the traversal
function templates.  This patch uses the same approach as we did for
hash_map.

Tested on x86_64-linux-gnu.

gcc/
	PR bootstrap/68406
	* hash-set.h (hash_set::traverse): Expand Key typedef.

From-SVN: r230549
2015-11-18 14:31:10 +00:00
Martin Liska
4a353e1608 Finalize func_options in arm target in
* config/arm/arm.c (arm_valid_target_attribute_p): Finalize
	options struct.

From-SVN: r230548
2015-11-18 14:18:11 +00:00
Ed Schonberg
43151cfd6a sem_ch4.adb (Try_Container_Indexing): When constructing the parameter list for the potentially overloaded calls to...
2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): When constructing the
	parameter list for the potentially overloaded calls to indexing
	functions, do not propagate overloadings if the actual is a named
	association: overloadings appear directly on the expression in
	the association.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Interface_Present_In_Ancestor): If the type is
	incomplete, the list of ancestors is found either on the full
	view or the non-limited view of the type.

From-SVN: r230547
2015-11-18 14:55:42 +01:00
Arnaud Charlet
e645cb39bb [multiple changes]
2015-11-18  Nicolas Roche  <roche@adacore.com>

	* sysdep.c (__gnat_localtime_tzoff): On Windows platform
	GetTimeZoneInformation function is thread-safe. Thus there
	is no need to lock the runtime in the implementation of
	__gnat_localtime_tzoff on that platform.

2015-11-18  Eric Botcazou  <ebotcazou@adacore.com>

	* s-arit64.adb (To_Neg_Int): Add a special case for 2**63 input.

2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* contracts.adb (Analyze_Contracts): New routine.
	(Analyze_Enclosing_Package_Body_Contract): Removed.
	(Analyze_Entry_Or_Subprogram_Contract): Add formal parameter
	Freeze_Id.  Propagate the entity of the freezing body to vaious
	analysis routines.
	(Analyze_Initial_Declaration_Contract): Removed.
	(Analyze_Object_Contract): Add formal parameter
	Freeze_Id. Propagate the entity of the freezing body to vaious
	analysis routines.
	(Analyze_Previous_Contracts): New routine.
	* contracts.ads (Analyze_Enclosing_Package_Body_Contract): Removed.
	(Analyze_Contracts): New routine.
	(Analyze_Entry_Or_Subprogram_Contract): Add formal
	parameter Freeze_Id and update the comment on usage.
	(Analyze_Initial_Declaration_Contract): Removed.
	(Analyze_Object_Contract): Add formal parameter Freeze_Id and
	update the comment on usage.
	(Analyze_Previous_Contracts): New routine.
	* sem_ch3.adb (Analyze_Declarations): Use Analyze_Contracts to
	analyze all contracts of eligible constructs.
	* sem_ch6.adb (Analyze_Generic_Subprogram_Body):
	A body no longer freezes the contract of its initial
	declaration. This effect is achieved through different means.
	(Analyze_Subprogram_Body_Helper): A body now freezes the contracts
	of all eligible constructs that precede it. A body no longer
	freezes the contract of its initial declaration. This effect is
	achieved through different means.
	* sem_ch7.adb (Analyze_Package_Body_Helper): A body now freezes
	the contracts of all eligible constructs that precede it. A body
	no longer freezes the contract of its initial declaration. This
	effect is achieved through different means.
	* sem_ch9.adb (Analyze_Entry_Body): A body now freezes
	the contracts of all eligible constructs that precede
	it. A body no longer freezes the contract of its initial
	declaration. This effect is achieved through different means.
	(Analyze_Protected_Body): A body now freezes the contracts
	of all eligible constructs that precede it. A body no longer
	freezes the contract of its initial declaration. This effect
	is achieved through different means.
	(Analyze_Task_Body): A
	body now freezes the contracts of all eligible constructs that
	precede it. A body no longer freezes the contract of its initial
	declaration. This effect is achieved through different means.
	* sem_prag.adb (Add_Item_To_Name_Buffer): Single protected/task
	objects now output their respective current instance of xxx
	type messages.	(Analyze_Contract_Cases_In_Decl_Part): Add
	formal parameter Freeze_Id. Emit a clarification message
	when an undefined entity may the byproduct of contract
	freezing.
	(Analyze_Part_Of_In_Decl_Part): Add formal
	parameter Freeze_Id. Emit a clarification message when an
	undefined entity may the byproduct of contract freezing.
	(Analyze_Pre_Post_Condition_In_Decl_Part): Add formal
	parameter Freeze_Id. Emit a clarification message when an
	undefined entity may the byproduct of contract freezing.
	(Analyze_Refined_State_In_Decl_Part): Do not report unused body
	states as constituents of single protected/task types may not
	bave been identified yet.
	(Collect_Subprogram_Inputs_Outputs):
	Reimplemented.	(Contract_Freeze_Error): New routine.
	(Process_Overloadable): Use predicate Is_Single_Task_Object.
	* sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part):
	Add formal parameter Freeze_Id and update the comment
	on usage.
	(Analyze_Part_Of_In_Decl_Part): Add formal
	parameter Freeze_Id and update the comment on usage.
	(Analyze_Pre_Post_Condition_In_Decl_Part): Add formal parameter
	Freeze_Id and update the comment on usage.
	* sem_util.adb (Check_Unused_Body_States): Remove global
	variable Legal_Constits. The routine now reports unused
	body states regardless of whether constituents are
	legal or not.
	(Collect_Body_States): A constituent of a
	single protected/task type is not a visible state of a
	package body.
	(Collect_Visible_States): A constituent
	of a single protected/task type is not a visible
	state of a package body.
	(Has_Undefined_Reference): New routine.
	(Is_Single_Concurrent_Object): Reimplemented.
	(Is_Single_Protected_Object): New routine.
	(Is_Single_Task_Object): New routine.
	(Is_Visible_Object): New routine.
	(Report_Unused_Body_States): Moved to Check_Unused_Body_States.
	* sem_util.ads (Check_Unused_Body_States): Update the comment on usage.
	(Has_Undefined_Reference): New routine.
	(Is_Single_Protected_Object): New routine.
	(Is_Single_Task_Object): New routine.
	(Report_Unused_Body_States): Moved to Check_Unused_Body_States.

2015-11-18  Pierre-Marie de Rodat  <derodat@adacore.com>

	* Makefile.rtl, impunit.adb: Add g-strhas.ads.
	* g-strhas.ads: New file.
	* s-strhas.ads: Add a comment to redirect users to g-strhas.ads.

2015-11-18  Bob Duff  <duff@adacore.com>

	* sem_elab.adb (Check_Internal_Call_Continue): Fix the case
	where the call in question is to a renaming of a subprogram that
	can be safely called without ABE.
	* checks.adb: Minor edits.

From-SVN: r230546
2015-11-18 14:53:58 +01:00
Nathan Sidwell
33f47f4279 nvptx.c (global_lock_var): New.
gcc/
	* config/nvptx/nvptx.c (global_lock_var): New.
	(nvptx_global_lock_addr): New.
	(nvptx_lockless_update): Recomment and adjust for clarity.
	(nvptx_lockfull_update): New.
	(nvptx_reduction_update): New.
	(nvptx_goacc_reduction_fini): Call it.

	libgcc/
	* config/nvptx/reduction.c: New.
	* config/nvptx/t-nvptx (LIB2ADD): Add it.

	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add
	worker & gang cases.
	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.

From-SVN: r230545
2015-11-18 13:49:17 +00:00
Bernd Schmidt
d085c46817 regrename.h (struct du_head): Add target_data_1 and target_data_2 fields.
* regrename.h (struct du_head): Add target_data_1 and target_data_2
	fields.
	* regrename.c (create_new_chain): Clear entire struct after allocating.

	* config/i386/i386.opt (mmitigate-rop): New option.
	* doc/invoke.texi (mmitigate-rop): Document.
	* config/i386/i386.c: Include "regrename.h".
	(ix86_rop_should_change_byte_p, reg_encoded_number,
	ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
	static functions.
	(ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
	* config/i386/i386.md (attr "modrm_class"): New.
	(cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
	x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
	(x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.

From-SVN: r230543
2015-11-18 12:26:43 +00:00
Ilya Enkovich
98f84050d6 re PR target/68405 (trunk/gcc/config/i386/i386.c:22951: possible missing break ?)
gcc/

	PR target/68405
	* config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing
	break.

From-SVN: r230541
2015-11-18 11:51:58 +00:00
Arnaud Charlet
fdc54be6a0 [multiple changes]
2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* atree.adb (Elist11): New routine.
	(Set_Elist11): New routine.
	* atree.ads (Elist11): New routine.
	(Set_Elist11): New routine.
	* atree.h: Define Elist11.
	* contracts.adb (Analyze_Object_Contract): Verify the legality
	of all references to a variable given that the variable is a
	constituent of a single protected/task type.
	* einfo.adb: Part_Of_References now utilizes Elist11.
	(Part_Of_References): New routine.
	(Set_Part_Of_References): New routine.
	(Write_Field11_Name): Add output for Part_Of_References.
	* einfo.ads New attribute Part_Of_References along with usage
	in entities.
	(Part_Of_References): New routine along with
	pragma Inline.
	(Set_Part_Of_References): New routine along with pragma Inline.
	* sem_prag.adb (Analyze_Constituent): Record a possible
	reference to a concurrent constituent.
	(Analyze_Global_Item): Record a possible reference to a concurrent
	constituent.
	(Analyze_Input_Output): Record a possible reference to a
	concurrent constituent.
	* sem_res.adb (Resolve_Entity_Name): Record a possible reference
	to a concurrent constituent.
	* sem_util.adb (Check_Part_Of_Reference): New routine.
	(Record_Possible_Part_Of_Reference): New routine.
	* sem_util.ads (Check_Part_Of_Reference): New routine.
	(Record_Possible_Part_Of_Reference): New routine.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
	An if_expression is the proper place to apply the overflow
	minimization procedure if its context is not an enclosing
	arithmetic expression.

From-SVN: r230540
2015-11-18 11:53:39 +01:00
Arnaud Charlet
3f8d242bd3 Regenerate doc.
From-SVN: r230539
2015-11-18 11:51:46 +01:00
Arnaud Charlet
2544cbe4f2 gnat_project_manager.rst, [...]: Update doc.
* gnat_ugn/gnat_project_manager.rst,
        gnat_ugn/building_executable_programs_with_gnat.rst,
        gnat_ugn/gnat_and_program_execution.rst,
        gnat_ugn/the_gnat_compilation_model.rst,
        gnat_rm/implementation_defined_pragmas.rst,
        gnat_rm/standard_and_implementation_defined_restrictions.rst,
        gnat_ugn.texi, gnat_rm.texi: Update doc.

From-SVN: r230538
2015-11-18 11:50:40 +01:00
Arnaud Charlet
767cd81cc3 Minor code clean ups.
From-SVN: r230537
2015-11-18 11:48:32 +01:00
Arnaud Charlet
c0dd5b3822 [multiple changes]
2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* contracts.adb (Add_Contract_Item): Chain pragmas Attach_Handler
	and Interrupt_Handler on the classifications list of a [generic]
	procedure N_Contract node.
	* contracts.ads (Add_Contract_Item): Update the comment on usage.
	* einfo.adb (Get_Pragma): Pragmas Attach_Handler and
	Interrupt_Handler are found on the classifications list of
	N_Contract nodes.
	* einfo.ads (Get_Pragma): Update the comment on usage.
	* sem_prag.adb (Process_Interrupt_Or_Attach_Handler): Code
	reformatting. Store the pragma as a contract item.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Available_Subtype): Use only in GNATprove
	mode. When generating code it may be necessary to create itypes
	at the point of use of a selected component, for example in the
	expansion of a record equality operation.

2015-11-18  Vincent Celier  <celier@adacore.com>

	* s-os_lib.adb (Normalize_Pathname.Get_Directory): When
	invoking Normalize_Pathname, use the same values for parameters
	Resolve_Links and Case_Sensitive as the parent Normalize_Pathname.

2015-11-18  Vincent Celier  <celier@adacore.com>

	* a-direct.adb (Containing_Directory): Return "." when the result
	is the current directory, not specified as an absolute path name.

From-SVN: r230536
2015-11-18 11:42:27 +01:00
Arnaud Charlet
a25e72b5e5 [multiple changes]
2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_aggr.adb (Is_Completely_Hidden_Discriminant): New routine.
	(Init_Hidden_Discriminants): Code reformatting. Do not initialize
	a completely hidden discriminant.
	* a-interr.ads (Get_CPU): Added SPARK_Mode, Volatile_Function
	and Global aspects on the function.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* exp_intr.adb (Expand_Unc_Deallocation): If the designated
	type is a concurrent type, the deallocation applies to the
	corresponding record type, or to its class-wide type if the type
	is tagged.

From-SVN: r230535
2015-11-18 11:40:47 +01:00
Doug Rupp
86e066aa7a s-parame-vxworks.adb: Reduce default stack size for stack limit check to a reasonable value
2015-11-18  Doug Rupp  <rupp@adacore.com>

	* s-parame-vxworks.adb: Reduce default stack size for stack
	limit check to a reasonable value
	* s-tpopsp-vxworks.adb: Make Stack_Limit a task variable for vx5 and
	vxmils.

From-SVN: r230534
2015-11-18 11:39:37 +01:00
Arnaud Charlet
72d5c70bbf [multiple changes]
2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): Diagnose assignment where
	left-hand side has a limited view of a class-wide type.
	* sem_ch6.adb (Detected_And_Exchange): Do not install a non-limited
	view if the scope of the type of the formal is visible through
	a limited_with_clause, even if the non-limited view is available.

2015-11-18  Emmanuel Briot  <briot@adacore.com>

	* s-pooglo.ads: Make Global_Pool_Object aliased.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Access): If the prefix
	is an expression function, do not analyze the generated body if
	the current scope is not the scope of the expression function,
	as may happen if the attribute is an actual in an instantiation.
	* sem_ch10.adb, sem_ch12.adb, a-stzmap.adb, s-soflin.adb,
	a-stwima.adb: Fix typos.

2015-11-18  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch11.adb (Expand_N_Exception_Declaration): No-op when
	generating C code.

2015-11-18  Vincent Celier  <celier@adacore.com>

	* g-comlin.adb (Find_Longest_Matching_Switch): Do not take into
	account a switch ending with '=' when the actual command line
	switch is not followed with a space or '='.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Explicit_Dereference): Do not add an access
	check if the type of the prefix is known to exclude null.
	* a-coinve.adb (Get_Element_Access): The function returns an
	access type that excludes null, so add an explicit check for
	a null element pointer, which is created when Insert_Spaces is
	called on an indefinite vector container.

From-SVN: r230533
2015-11-18 11:31:53 +01:00
Hristian Kirtchev
7bf911b583 re PR ada/66242 (Front-end error if exception propagation disabled)
2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	PR ada/66242

	* exp_ch3.adb (Default_Initialize_Object): Reimplemented. Abort
	defer / undefer pairs are now encapsulated in a block with
	an AT END handler. Partial finalization now takes restriction
	No_Exception_Propagation into account when generating blocks.
	* exp_ch7.adb Various reformattings.
	(Create_Finalizer): Change
	the generation of abort defer / undefer pairs and explain the
	lack of an AT END handler.
	(Process_Transient_Objects): Add generation of abort defer/undefer
	pairs.
	* exp_ch9.adb Various reformattings.
	(Build_Protected_Subprogram_Body): Use
	Build_Runtime_Call to construct a call to Abort_Defer.
	(Build_Protected_Subprogram_Call_Cleanup): Use
	Build_Runtime_Call to construct a call to Abort_Undefer.
	(Expand_N_Asynchronous_Select): Use Build_Runtime_Call to
	construct a call to Abort_Defer.
	* exp_intr.adb (Expand_Unc_Deallocation): Abort defer
	/ undefer pairs are now encapsulated in a block with
	an AT END handler. Finalization now takes restriction
	No_Exception_Propagation into account when generating blocks.
	* exp_util.ads, exp_util.adb (Wrap_Cleanup_Procedure): Removed.

From-SVN: r230531
2015-11-18 11:30:12 +01:00
Jakub Jelinek
8ebcad86e6 re PR tree-optimization/68157 (internal compiler error: in reassoc_stmt_dominates_stmt_p, at tree-ssa-reassoc.c:1287)
PR tree-optimization/68157
	* tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
	pow_stmt or mul_stmt from stmt's uid.
	(reassociate_bb): Set uid of mul_stmt from stmt's uid.

	* g++.dg/opt/pr68157.C: New test.

From-SVN: r230530
2015-11-18 11:23:21 +01:00
Arnaud Charlet
7d4c4fde0e [multiple changes]
2015-11-18  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb (Scan_Front_End_Switches): Add a check requiring
	-gnatc with -gnateg.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Uninstall_Declarations): Before swapping private
	and full views, ensure that the potential use visbility of the
	two views is consistent.

2015-11-18  Doug Rupp  <rupp@adacore.com>

	* s-parame-vxworks.adb: Increase default stack size for targets
	using stack limit checking.

2015-11-18  Jose Ruiz  <ruiz@adacore.com>

	* a-interr.adb, a-interr.ads (Ada.Interrupts.Get_CPU): Add this
	function that was added to Ada 2005 returning the processor where
	interrupt handlers execute.

2015-11-18  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Is_Pure_Barrier): Handle expanded component
	declaration of a protected definition.

From-SVN: r230529
2015-11-18 11:23:05 +01:00
Arnaud Charlet
3a2b145788 [multiple changes]
2015-11-18  Ed Falis  <falis@adacore.com>

	* s-soflin.adb, s-stchop-vxworks.adb: Code clean ups.

2015-11-18  Gary Dismukes  <dismukes@adacore.com>

	* bcheck.adb: Minor editorial changes.

From-SVN: r230528
2015-11-18 11:20:28 +01:00
Arnaud Charlet
5a99fda7cc [multiple changes]
2015-11-18  Arnaud Charlet  <charlet@adacore.com>

	* interfac.ads (Unsigned_24): New type.
	* sem_ch13.adb (Validate_Unchecked_Conversion): Disable error on
	unconstrained arrays in Relaxed_RM_Semantics mode.

2015-11-18  Vincent Celier  <celier@adacore.com>

	* bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): No
	warning is withed unit is the interface of a Stand-Alone Library.

From-SVN: r230527
2015-11-18 11:12:27 +01:00
Arnaud Charlet
1d74252db8 [multiple changes]
2015-11-18  Thomas Quinot  <quinot@adacore.com>

	* s-os_lib.ads, s-os_lib.adb(Normalize_Pathname): Support the case of
	an unresolved Directory argument, by recursively resolving it
	against the current dir.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Process_Formals): A function declaration that
	returns a class-wide type must have freeing deferred, so that it
	is not frozen before the class-wide type and its root type are
	frozen. This is significant when there may be a limited view of
	the class_wide type in another package.

From-SVN: r230526
2015-11-18 11:10:46 +01:00
Arnaud Charlet
2f54ef3d56 [multiple changes]
2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Has_Non_Null_Refinement): Rename to
	Has_Non_Null_Visible_Refinement.
	(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement.
	* einfo.ads Update the documentation of
	attribute Has_Non_Null_Refinement and attribute Has_Null_Refinement.
	(Has_Non_Null_Refinement): Rename to Has_Non_Null_Visible_Refinement
	and update occurrences in entities.
	(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement and update
	occurrences in entities.
	* sem_prag.adb (Check_In_Out_States): Update the calls to
	Has_[Non_]Null_Refinement.
	(Check_Input_States): Update the
	calls to Has_[Non_]Null_Refinement.
	(Check_Output_States): Update the calls to Has_[Non_]Null_Refinement.
	(Check_Proof_In_States): Update the calls to Has_[Non_]Null_Refinement.
	(Collect_Global_Item): Update the calls to Has_[Non_]Null_Refinement.
	(Is_Null_Refined_State): Update the calls to Has_[Non_]Null_Refinement.
	(Match_Item): Update the calls to Has_[Non_]Null_Refinement.
	* sem_util.adb (Has_Non_Null_Refinement): New routine.
	(Has_Null_Refinement): New routine.
	* sem_util.ads (Has_Non_Null_Refinement): New routine.
	(Has_Null_Refinement): New routine.

2015-11-18  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb: Minor reformatting and typo fixes.

From-SVN: r230525
2015-11-18 11:08:00 +01:00
Hristian Kirtchev
d930784028 sem_ch4.adb: Minor reformatting.
2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch4.adb: Minor reformatting.

2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): Add new formal
	parameter Related_Id and propagate it to Make_Subtype_From_Expr.
	(Make_Subtype_From_Expr): Add new formal parameter
	Related_Id. Create external entities when requested by the caller.
	* exp_util.ads (Expand_Subtype_From_Expr): Add new formal
	parameter Related_Id. Update the comment on usage.
	(Make_Subtype_From_Expr): Add new formal parameter
	Related_Id. Update the comment on usage.
	* sem_ch3.adb (Analyze_Object_Declaration): Add local variable
	Related_Id. Generate an external constrained subtype when the
	object is a public symbol.

2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Update the grammars of pragmas
	Abstract_State, Depends, Global, Initializes, Refined_Depends,
	Refined_Global and Refined_State.

From-SVN: r230524
2015-11-18 11:05:58 +01:00
Arnaud Charlet
5904016a5c [multiple changes]
2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Has_Full_Default_Initialization):
	Perform the test for the presence of pragma
	Default_Initial_Condition prior to the specialized type
	checks. Add a missing case where the lack of a pragma argument
	yields full default initialization.

2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Resolve_Entity_Name): Do not check
	for elaboration issues when a variable appears as the name of
	an object renaming declaration as this constitutes an aliasing,
	not a read.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Overlap_Check): An actual that is an aggregate
	cannot overlap with another actual, and no check should be
	generated for it.
	* targparm.ads: Fix typos.

2015-11-18  Pascal Obry  <obry@adacore.com>

	* adaint.c: Routine __gnat_killprocesstree only implemented on
	Linux and Windows.

2015-11-18  Pascal Obry  <obry@adacore.com>

	* g-ctrl_c.adb: Minor style fixes.

From-SVN: r230523
2015-11-18 11:03:44 +01:00
Arnaud Charlet
287aa0ed92 [multiple changes]
2015-11-18  Pascal Obry  <obry@adacore.com>

	* adaint.c, s-os_lib.adb, s-os_lib.ads (Kill_Process_Tree): New.

2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Check_Nonvolatile_Function_Profile): Place the error
	message concerning the return type on the result definition.
	(Is_Volatile_Function): A function with a parameter of a protected
	type is a protected function if it is defined within a protected
	definition.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): When building the
	parameter list for the function call on indexing functions,
	preserve overloading of the parameters, which may themselves be
	generalized indexing operations.

From-SVN: r230522
2015-11-18 10:38:46 +01:00
Martin Liska
da54052e5a Add missing test-case for PR ipa/68035
From-SVN: r230521
2015-11-18 09:06:50 +00:00
Martin Liska
36fb33de48 Release memory in haifa-sched
* haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.

From-SVN: r230520
2015-11-18 09:01:35 +00:00
Martin Liska
a4f0c29da8 Fix memory leaks in tree-ssa-uninit.c
* tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
	Fix GNU coding style.
	(find_def_preds): Use auto_vec.
	(destroy_predicate_vecs): Change signature of the function.
	(prune_uninit_phi_opnds_in_unrealizable_paths): Use the
	new signature.
	(simplify_preds_4): Use destroy_predicate_vecs instread of
	just releasing preds vector.
	(normalize_preds): Likewise.
	(is_use_properly_guarded): Use new signature of
	destroy_predicate_vecs.
	(find_uninit_use): Likewise.

From-SVN: r230519
2015-11-18 09:00:58 +00:00
Richard Biener
0b176958df re PR middle-end/67790 (verify_ssa failed: definition in block 20 follows the use)
2015-11-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67790
	* tree-vect-loop.c (vect_is_simple_reduction_1): Remove
	IL rewrite for MINUS_EXPR reductions, rename back to ...
	(vect_is_simple_reduction): ... this, removing the wrapper.
	(vect_force_simple_reduction): Adjust.
	(vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
	reductions and make use if reduc_index in all places.  For
	the final reduction of MINUS_EXPR use PLUS_EXPR.

	* gcc.dg/vect/pr67790.c: New testcase.

From-SVN: r230518
2015-11-18 08:31:32 +00:00
David Edelsohn
ae53cf85a0 * g++.dg/cpp1y/pr58708.C: Define wfoo based on sizeof wchar_t.
From-SVN: r230516
2015-11-17 19:43:59 -05:00
GCC Administrator
cceac13fa1 Daily bump.
From-SVN: r230515
2015-11-18 00:16:14 +00:00
Alan Modra
458bc9b1d0 A default of -z relro (as on Fedora) defeats the deliberate mis-alignment of .got in the testcase.
POWERPC64_TOC_POINTER_ALIGNMENT

A default of -z relro (as on Fedora) defeats the deliberate
mis-alignment of .got in the testcase.

	* configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
	to ld.
	* configure: Regenerate.

From-SVN: r230509
2015-11-18 09:54:30 +10:30
Jason Merrill
0465369f41 re PR bootstrap/68346 (Bootstrap failure on i686-linux)
PR bootstrap/68346

	* typeck.c (build_static_cast_1): Force a NOP when converting to
	the same type.

From-SVN: r230508
2015-11-17 16:49:23 -05:00
Jason Merrill
f26a415e75 LITERAL_ZERO_P obsoleted by delayed folding.
* cp-tree.h (LITERAL_ZERO_P): Remove.
	* parser.c (cp_parser_postfix_expression, literal_zeros)
	(cp_parser_parenthesized_expression_list): Don't mess with it.

From-SVN: r230507
2015-11-17 16:49:18 -05:00
Jason Merrill
8c2bebddd2 Don't fold -(constant) or -0.
* parser.c (cp_parser_unary_expression): Fold -constant here.
	* typeck.c (cp_build_unary_op): Not here.

From-SVN: r230506
2015-11-17 16:44:08 -05:00
Tom de Vries
33c6daf478 Improve comments in pass_tree_loop_init::execute
2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.

From-SVN: r230505
2015-11-17 21:42:36 +00:00
Tom de Vries
ed22b76f3f Make fdump-tree-sccp-details more complete
2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
	uses of ssa_name with constant.

From-SVN: r230504
2015-11-17 21:42:27 +00:00
Tom de Vries
635d5dd516 Clear LOOP_CLOSED_SSA after pass_ccp
2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
	something changed.

From-SVN: r230503
2015-11-17 21:42:18 +00:00
Tom de Vries
886c388d74 Add in_oacc_kernels_region in struct loop
2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* cfgloop.h (struct loop): Add in_oacc_kernels_region field.
	* omp-low.c (mark_loops_in_oacc_kernels_region): New function.
	(expand_omp_target): Call mark_loops_in_oacc_kernels_region.

From-SVN: r230502
2015-11-17 21:42:09 +00:00
Bernd Schmidt
211c93053a Preliminary regrename patch for i386 ROP patch
* regrename.c (regrename_find_superclass): New function, code moved
	from ...
	(rename_chains): ... here.  Call it.
	* regrename.h (regrename_find_superclass): Declare.

From-SVN: r230501
2015-11-17 21:32:14 +00:00
Bernd Schmidt
e85883d400 Ensure earlyclobbered operands go through a terminate_write stage.
* regrename.c (record_out_operands): Terminate earlyclobbered
	operands here.

From-SVN: r230500
2015-11-17 21:24:38 +00:00
Bernd Schmidt
d534bf561e re PR target/66785 (internal compiler error in record_operand_use)
PR target/66785
	* regrename.c (record_operand_use): Keep track of failed operands
	and stop appending if we see any.
	* regrename.h (struct operand_rr_info): Add a failed field and shrink
	n_chains to short.

From-SVN: r230499
2015-11-17 21:20:20 +00:00
Sandra Loosemore
9f50f67c0b re PR c/48568 (Missing documentation for __attribute__((visibility ("protected"))) on variables.)
2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>

	PR 48568
	* doc/extend.texi (Common Function Attributes) [visibility]:
	Add cross-references to matching variable and type attributes.
	(Common Variable Attributes) [visibility]: Add missing entry.

From-SVN: r230498
2015-11-17 16:07:15 -05:00
David Malcolm
bef08b718f Fix uninitialized src_range values for c_expr
gcc/c/ChangeLog:
	* c-parser.c (set_c_expr_source_range): Bulletproof both
	overloaded implementations against NULL expr->value.
	(c_parser_braced_init): Set src_range for "ret" to a sane pair of
	values.
	(c_parser_unary_expression): Likewise when handling addresses of
	labels.
	(c_parser_postfix_expression): Likewise for statement expressions,
	for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
	__builtin_va_arg, and for __builtin_offset_of.
	(c_parser_postfix_expression_after_paren_type): Initialize expr's
	src_range using the range of the braced initializer.
	(c_parser_transaction_expression): Set src_range for "ret" to a
	sane pair of values.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic-test-expressions-1.c (vector): New
	macro.
	(test_braced_init): New function.
	(test_statement_expression): New function.
	(test_address_of_label): New function.
	(test_transaction_expressions): New function.
	(test_keywords): New function.
	(test_builtin_va_arg): New function.
	(test_builtin_offsetof): New function.
	* lib/multiline.exp (_build_multiline_regex): Escape braces.

From-SVN: r230497
2015-11-17 20:09:56 +00:00
Jonathan Wakely
5f0b7c9548 PR libstdc++/66059 optimise _Build_index_tuple
PR libstdc++/66059
	* include/std/utility (_Build_index_tuple): Optimise.

From-SVN: r230496
2015-11-17 19:54:33 +00:00
Steven G. Kargl
490325650d primary.c (gfc_match_structure_constructor): Fix whitespace.
2015-11-17  Steven G. Kargl  <kargl@gcc.gnu.org>

	* primary.c (gfc_match_structure_constructor): Fix whitespace.

From-SVN: r230495
2015-11-17 19:51:10 +00:00
Richard Sandiford
6632fdebbd Simplify rs6000_builtin_vectorized_function
After the previous patches it's no longer necessary for
TARGET_BUILTIN_VECTORIZED_FUNCTION to return functions that
map to the vector optab of the original operation.  We'll use
a vector form of the internal function instead.

Tested on powerpc64-linux-gnu.

gcc/
	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
	entries that map directly to optabs.

From-SVN: r230494
2015-11-17 18:56:52 +00:00