Commit Graph

151153 Commits

Author SHA1 Message Date
Arnaud Charlet
b0bf18adaa [multiple changes]
2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* expander.adb (Expand): Add a warning about using return
	statements in Ghost management code.
	* exp_ch3.adb (Freeze_Type): Add a warning about using return
	statements in Ghost management code.
	* exp_ch7.adb (Build_Invariant_Procedure_Body,
	Build_Invariant_Procedure_Declaration): Add a warning about
	using return statements in Ghost management code.
	* exp_disp.adb (Make_DT): Add a warning about using return
	statements in Ghost management code.
	* exp_util.adb (Build_DIC_Procedure_Body,
	Build_DIC_Procedure_Declaration, Make_Predicated_Call): Add a
	warning about using return statements in Ghost management code.
	* freeze.adb (Freeze_Entity): Add a warning about using return
	statements in Ghost management code.
	* sem.adb (Analyze, Do_Analyze): Add a warning about using return
	statements in Ghost management code.
	* sem_ch3.adb (Analyze_Object_Declaration, Process_Full_View): Add
	a warning about using return statements in Ghost management code.
	* sem_ch5.adb (Analyze_Assignment): Add a warning about using
	return statements in Ghost management code.
	* sem_ch6.adb (Analyze_Procedure_Call,
	Analyze_Subprogram_Body_Helper): Add a warning about using return
	statements in Ghost management code.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Add a warning about
	using return statements in Ghost management code.
	* sem_ch12.adb (Analyze_Package_Instantiation,
	Analyze_Subprogram_Instantiation, Instantiate_Package_Body,
	Instantiate_Subprogram_Body): Add a warning about using return
	statements in Ghost management code.
	* sem_ch13.adb (Build_Predicate_Functions,
	Build_Predicate_Function_Declarations): Add a warning about
	using return statements in Ghost management code.
	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part,
	Analyze_Initial_Condition_In_Decl_Part, Analyze_Pragma,
	Analyze_Pre_Post_Condition_In_Decl_Part):  Add a warning about
	using return statements in Ghost management code.

2017-01-13  Tristan Gingold  <gingold@adacore.com>

	* s-mmosin-mingw.adb: Fix pragma import.

2017-01-13  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Ignore -gnateE in
	codepeer mode.

From-SVN: r244396
2017-01-13 10:43:56 +01:00
Hristian Kirtchev
d65a80fd55 atree.adb (Allocate_Initialize_Node): A newly created node is no longer marked as Ghost at this level.
2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* atree.adb (Allocate_Initialize_Node): A newly created node is
	no longer marked as Ghost at this level.
	(Mark_New_Ghost_Node): New routine.
	(New_Copy): Mark the copy as Ghost.
	(New_Entity): Mark the entity as Ghost.
	(New_Node): Mark the node as Ghost.
	* einfo.adb (Is_Checked_Ghost_Entity): This attribute can now
	apply to unanalyzed entities.
	(Is_Ignored_Ghost_Entity): This attribute can now apply to unanalyzed
	entities.
	(Set_Is_Checked_Ghost_Entity): This attribute now
	applies to all entities as well as unanalyzed entities.
	(Set_Is_Ignored_Ghost_Entity): This attribute now applies to
	all entities as well as unanalyzed entities.
	* expander.adb Add with and use clauses for Ghost.
	(Expand): Install and revert the Ghost region associated with the node
	being expanded.
	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove all Ghost-related code.
	(Expand_Freeze_Class_Wide_Type): Remoe all Ghost-related code.
	(Expand_Freeze_Enumeration_Type): Remove all Ghost-related code.
	(Expand_Freeze_Record_Type): Remove all Ghost-related code.
	(Freeze_Type): Install and revert the Ghost region associated
	with the type being frozen.
	* exp_ch5.adb Remove with and use clauses for Ghost.
	(Expand_N_Assignment_Statement): Remove all Ghost-related code.
	* exp_ch6.adb Remove with and use clauses for Ghost.
	(Expand_N_Procedure_Call_Statement): Remove all Ghost-relatd code.
	(Expand_N_Subprogram_Body): Remove all Ghost-related code.
	* exp_ch7.adb (Build_Invariant_Procedure_Body): Install and revert the
	Ghost region of the working type.
	(Build_Invariant_Procedure_Declaration): Install and revert
	the Ghost region of the working type.
	(Expand_N_Package_Body): Remove all Ghost-related code.
	* exp_ch8.adb Remove with and use clauses for Ghost.
	(Expand_N_Exception_Renaming_Declaration): Remove all Ghost-related
	code.
	(Expand_N_Object_Renaming_Declaration): Remove all Ghost-related code.
	(Expand_N_Package_Renaming_Declaration): Remove all Ghost-related code.
	(Expand_N_Subprogram_Renaming_Declaration): Remove all Ghost-related
	code.
	* exp_ch13.adb Remove with and use clauses for Ghost.
	(Expand_N_Freeze_Entity): Remove all Ghost-related code.
	* exp_disp.adb (Make_DT): Install and revert the Ghost region of
	the tagged type. Move the generation of various entities within
	the Ghost region of the type.
	* exp_prag.adb Remove with and use clauses for Ghost.
	(Expand_Pragma_Check): Remove all Ghost-related code.
	(Expand_Pragma_Contract_Cases): Remove all Ghost-related code.
	(Expand_Pragma_Initial_Condition): Remove all Ghost-related code.
	(Expand_Pragma_Loop_Variant): Remove all Ghost-related code.
	* exp_util.adb (Build_DIC_Procedure_Body): Install
	and revert the Ghost region of the working types.
	(Build_DIC_Procedure_Declaration): Install and revert the
	Ghost region of the working type.
	(Make_Invariant_Call): Install and revert the Ghost region of the
	associated type.
	(Make_Predicate_Call): Reimplemented. Install and revert the
	Ghost region of the associated type.
	* freeze.adb (Freeze_Entity): Install and revert the Ghost region
	of the entity being frozen.
	(New_Freeze_Node): Removed.
	* ghost.adb Remove with and use clauses for Opt.
	(Check_Ghost_Completion): Update the parameter profile
	and all references to formal parameters.
	(Ghost_Entity): Update the comment on usage.
	(Install_Ghost_Mode): New routines.
	(Is_Ghost_Assignment): New routine.
	(Is_Ghost_Declaration): New routine.
	(Is_Ghost_Pragma): New routine.
	(Is_Ghost_Procedure_Call): New routine.
	(Is_Ghost_Renaming): Removed.
	(Is_OK_Declaration): Reimplemented.
	(Is_OK_Pragma): Reimplemented.
	(Is_OK_Statement): Reimplemented.
	(Is_Subject_To_Ghost): Update the comment on usage.
	(Mark_And_Set_Ghost_Assignment): New routine.
	(Mark_And_Set_Ghost_Body): New routine.
	(Mark_And_Set_Ghost_Completion): New routine.
	(Mark_And_Set_Ghost_Declaration): New routine.
	(Mark_And_Set_Ghost_Instantiation): New routine.
	(Mark_And_Set_Ghost_Procedure_Call): New routine.
	(Mark_Full_View_As_Ghost): Removed.
	(Mark_Ghost_Declaration_Or_Body): New routine.
	(Mark_Ghost_Pragma): New routine.
	(Mark_Ghost_Renaming): New routine.
	(Mark_Pragma_As_Ghost): Removed.
	(Mark_Renaming_As_Ghost): Removed.
	(Propagate_Ignored_Ghost_Code): Update the comment on usage.
	(Prune_Node): Freeze nodes no longer need special pruning, they
	are processed by the general ignored Ghost code mechanism.
	(Restore_Ghost_Mode): New routine.
	(Set_Ghost_Mode): Reimplemented.
	(Set_Ghost_Mode_From_Entity): Removed.
	* ghost.ads Add with and use clauses for Ghost.
	(Check_Ghost_Completion): Update the parameter profile
	along with the comment on usage.
	(Install_Ghost_Mode): New routine.
	(Is_Ghost_Assignment): New routine.
	(Is_Ghost_Declaration): New routine.
	(Is_Ghost_Pragma): New routine.
	(Is_Ghost_Procedure_Call): New routine.
	(Mark_And_Set_Ghost_Assignment): New routine.
	(Mark_And_Set_Ghost_Body): New routine.
	(Mark_And_Set_Ghost_Completion): New routine.
	(Mark_And_Set_Ghost_Declaration): New routine.
	(Mark_And_Set_Ghost_Instantiation): New routine.
	(Mark_And_Set_Ghost_Procedure_Call): New routine.
	(Mark_Full_View_As_Ghost): Removed.
	(Mark_Ghost_Pragma): New routine.
	(Mark_Ghost_Renaming): New routine.
	(Mark_Pragma_As_Ghost): Removed.
	(Mark_Renaming_As_Ghost): Removed.
	(Restore_Ghost_Mode): New routine.
	(Set_Ghost_Mode): Redefined.
	(Set_Ghost_Mode_From_Entity): Removed.
	* sem.adb (Analyze): Install and revert the Ghost region of the
	node being analyzed.
	(Do_Analyze): Change the way a clean Ghost
	region is installed and reverted.
	* sem_ch3.adb (Analyze_Full_Type_Declaration): Remove
	all Ghost-related code.
	(Analyze_Incomplete_Type_Decl): Remove all Ghost-related code.
	(Analyze_Number_Declaration): Remove all Ghost-related code.
	(Analyze_Object_Declaration): Install and revert the Ghost region of
	a deferred object declaration's completion.
	(Array_Type_Declaration): Remove all Ghost-related code.
	(Build_Derived_Type): Update the comment on
	the propagation of Ghost attributes from a parent to a derived type.
	(Derive_Subprogram): Remove all Ghost-related code.
	(Make_Class_Wide_Type): Remove all Ghost-related code.
	(Make_Implicit_Base): Remove all Ghost-related code.
	(Process_Full_View): Install and revert the Ghost region of
	the partial view.  There is no longer need to check the Ghost
	completion here.
	* sem_ch5.adb (Analyze_Assignment): Install and revert the Ghost
	region of the left hand side.
	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
	all Ghost-related code.
	(Analyze_Expression_Function): Remove all Ghost-related code.
	(Analyze_Generic_Subprogram_Body): Remove all Ghost-related code.
	(Analyze_Procedure_Call): Install and revert the Ghost region of
	the procedure being called.
	(Analyze_Subprogram_Body_Helper): Install and revert the Ghost
	region of the spec or body.
	(Analyze_Subprogram_Declaration): Remove all Ghost-related code.
	(Build_Subprogram_Declaration): Remove all Ghost-related code.
	(Find_Corresponding_Spec): Remove all Ghost-related code.
	(Process_Formals): Remove all Ghost-related code.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Install and revert
	the Ghost region of the spec.
	(Analyze_Package_Declaration): Remove all Ghost-related code.
	* sem_ch8.adb (Analyze_Exception_Renaming): Mark a renaming as
	Ghost when it aliases a Ghost entity.
	(Analyze_Generic_Renaming): Mark a renaming as Ghost when it aliases
	a Ghost entity.
	(Analyze_Object_Renaming): Mark a renaming as Ghost when
	it aliases a Ghost entity.
	(Analyze_Package_Renaming): Mark a renaming as Ghost when it aliases
	a Ghost entity.
	(Analyze_Subprogram_Renaming): Mark a renaming as Ghost when it
	aliases a Ghost entity.
	* sem_ch11.adb Remove with and use clauses for Ghost.
	(Analyze_Exception_Declaration): Remove all Ghost-related code.
	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Remove all
	Ghost-related code.
	(Analyze_Generic_Subprogram_Declaration): Remove all Ghost-related
	code.
	(Analyze_Package_Instantiation): Install and revert the Ghost region
	of the package instantiation.
	(Analyze_Subprogram_Instantiation): Install
	and revert the Ghost region of the subprogram instantiation.
	(Instantiate_Package_Body): Code clean up. Install and revert the
	Ghost region of the package body.
	(Instantiate_Subprogram_Body): Code clean up. Install and revert the
	Ghost region of the subprogram body.
	* sem_ch13.adb (Build_Predicate_Functions): Install
	and revert the Ghost region of the related type.
	(Build_Predicate_Function_Declaration): Code clean up. Install
	and rever the Ghost region of the related type.
	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
	Install and revert the Ghost region of the pragma.
	(Analyze_Initial_Condition_In_Decl_Part): Install and revert the
	Ghost region of the pragma.
	(Analyze_Pragma): Install and revert the Ghost region of various
	pragmas.  Mark a pragma as Ghost when it is related to a Ghost entity
	or encloses a Ghost entity.
	(Analyze_Pre_Post_Condition): Install and revert the Ghost
	region of the pragma.
	(Analyze_Pre_Post_Condition_In_Decl_Part): Install and revert the
	Ghost region of the pragma.
	* sem_res.adb (Resolve): Remove all Ghost-related code.
	* sem_util.adb (Is_Declaration): Reimplemented.
	(Is_Declaration_Other_Than_Renaming): New routine.
	* sem_util.ads (Is_Declaration_Other_Than_Renaming): New routine.
	* sinfo.adb (Is_Checked_Ghost_Pragma): New routine.
	(Is_Ghost_Pragma): Removed.
	(Is_Ignored_Ghost_Pragma): New routine.
	(Set_Is_Checked_Ghost_Pragma): New routine.
	(Set_Is_Ghost_Pragma): Removed.
	(Set_Is_Ignored_Ghost_Pragma): New routine.
	* sinfo.ads: Update the documentation on Ghost mode and
	Ghost regions.	New attributes Is_Checked_Ghost_Pragma
	and Is_Ignored_Ghost_Pragma along with usages in nodes.
	Remove attribute Is_Ghost_Pragma along with usages in nodes.
	(Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
	(Is_Ghost_Pragma): Removed along with pragma Inline.
	(Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
	(Set_Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
	(Set_Is_Ghost_Pragma): Removed along with pragma Inline.
	(Set_Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.

From-SVN: r244395
2017-01-13 10:34:48 +01:00
Richard Biener
3c3b9090f8 re PR tree-optimization/77283 (Revision 238005 disables loop unrolling)
2017-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77283
	* gcc.dg/tree-ssa/split-path-9.c: Fix.

From-SVN: r244394
2017-01-13 08:47:57 +00:00
Richard Biener
2532991330 gimple-parser.c (c_parser_gimple_postfix_expression): Parse _Literal ( type-name ) number.
2017-01-13  Richard Biener  <rguenther@suse.de>

	c/
	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
	_Literal ( type-name ) number.

	* tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
	as _Literal ( type ) number in case usual suffixes do not
	preserve all information.

	* gcc.dg/gimplefe-22.c: New testcase.

From-SVN: r244393
2017-01-13 08:16:59 +00:00
Richard Biener
10b70b8e5e re PR tree-optimization/77283 (Revision 238005 disables loop unrolling)
2017-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77283
	* gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
	and ssa-iterators.h.
	(is_feasible_trace): Implement a cost model based on joiner
	PHI node uses.

	* gcc.dg/tree-ssa/split-path-7.c: Adjust.
	* gcc.dg/tree-ssa/split-path-8.c: New testcase.
	* gcc.dg/tree-ssa/split-path-9.c: Likewise.

From-SVN: r244392
2017-01-13 08:11:01 +00:00
GCC Administrator
53b586f270 Daily bump.
From-SVN: r244391
2017-01-13 00:16:16 +00:00
Sandra Loosemore
76a8f82f47 pr77862.c: Require fpic target.
2017-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* gcc.dg/pr77862.c: Require fpic target.

From-SVN: r244387
2017-01-12 17:42:33 -05:00
Michael Meissner
59a505da6b re PR target/79004 (ICE in gcc.dg/torture/fp-int-convert-float128-ieee.c with -mcpu=power9)
[gcc]
2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79004
	* config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
	char or short to __float128/_Float128 directly.

[gcc/testsuite]
2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79004
	* gcc.target/powerpc/pr79004.c: New test.

From-SVN: r244386
2017-01-12 22:02:57 +00:00
Martin Sebor
bce6f76013 (-Wformat-overflow): ...to this.
gcc/c-family/ChangeLog:

	(-Wformat-overflow): ...to this.

gcc/ChangeLog:

	to -Wformat-overflow.
	* gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
	(min_bytes_remaining): Same.
	(get_string_length): Same.
	(format_string): Same.
	(format_directive): Same.
	(add_bytes): Same.
	(pass_sprintf_length::handle_gimple_call): Same.

gcc/testsuite/ChangeLog:

	* gcc.dg/pr78138.c: Adjust.
	* gcc.dg/pr78768.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-4.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-8.c: Adjust.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Adjust.
	* gcc.dg/tree-ssa/pr78605.c: Adjust.
	* gcc.dg/tree-ssa/pr78622.c: Adjust.

From-SVN: r244385
2017-01-12 14:54:41 -07:00
Jakub Jelinek
3eefa646f4 gimple-ssa-sprintf.c (try_substitute_return_value): Remove info.nowrite calls with no lhs that can't throw.
* gimple-ssa-sprintf.c (try_substitute_return_value): Remove
	info.nowrite calls with no lhs that can't throw.  Return bool
	whether gsi_remove has been called or not.
	(pass_sprintf_length::handle_gimple_call): Return bool whether
	try_substitute_return_value called gsi_remove.  Formatting fix.
	(pass_sprintf_length::execute): Don't use gsi_remove if
	handle_gimple_call returned true.

	* gcc.dg/tree-ssa/builtin-snprintf-1.c: New test.

From-SVN: r244384
2017-01-12 22:30:56 +01:00
Jakub Jelinek
b34f29a19d re PR bootstrap/79069 (Bootstrap failure on s390x-linux while building libgo)
PR bootstrap/79069
	* cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
	be removed due to side-effects, don't remove following barrier nor
	turn the successor edge into fallthru edge.

From-SVN: r244383
2017-01-12 22:29:43 +01:00
Martin Sebor
940242cd07 re PR testsuite/79051 (FAIL: gcc.dg/attr-alloc_size-4.c (test for warnings, line 140))
PR testsuite/79051

gcc/testsuite/ChangeLog:
	* gcc.dg/attr-alloc_size-4.c: Work harder to avoid false negatives
	due to bug 79054.

From-SVN: r244382
2017-01-12 11:50:26 -07:00
Martin Sebor
8be3f30682 Reference PR testsuite/79051, not 791051.
From-SVN: r244381
2017-01-12 11:41:33 -07:00
Martin Sebor
dcb5624309 PR testsuite/791051 - FAIL: gcc.dg/attr-alloc_size-4.c (test for warnings, line 140)
gcc/testsuite/ChangeLog:
	* gcc.dg/attr-alloc_size-4.c: Avoid false negatives due to bug 79054.

From-SVN: r244380
2017-01-12 11:35:19 -07:00
David Edelsohn
b7431c206e * gcc.dg/pr78768.c: Require LTO.
From-SVN: r244379
2017-01-12 13:27:04 -05:00
Martin Sebor
2bcd9f3208 PR c/79074 - -Waddress difference between C and C++ with (T*)0
gcc/testsuite/ChangeLog:
	* c-c++-common/Waddress-2.c: Remove a test to avoid a C failure
	due to the referenced bug.

From-SVN: r244378
2017-01-12 11:07:51 -07:00
Martin Sebor
b2fc1c7050 PR testsuite/79073 - FAIL: gcc.dg/pr78973.c (test for warnings, line 12) in ILP32
gcc/testsuite/ChangeLog:
	* gcc.dg/pr78973.c: Xfail on ILP32 targets.

From-SVN: r244377
2017-01-12 10:43:16 -07:00
Uros Bizjak
fbed6f3695 builtin_target.c (check_features): Check all supported __builtin_cpu_supports options.
* gcc.target/i386/builtin_target.c (check_features): Check all
	supported __builtin_cpu_supports options.

From-SVN: r244375
2017-01-12 18:30:03 +01:00
Jonathan Wakely
a1f009a65f PR77528 partially revert r244278 and define default constructors
PR libstdc++/77528
	* include/bits/stl_queue.h (queue, priority_queue): Remove default
	member-initializers and define default constructors as templates with
	constraints.
	* include/bits/stl_stack.h (stack): Likewise.
	* testsuite/23_containers/priority_queue/requirements/constructible.cc:
	New.
	* testsuite/23_containers/priority_queue/requirements/
	explicit_instantiation/1.cc: Test more instantiations.
	* testsuite/23_containers/priority_queue/requirements/
	explicit_instantiation/1_c++98.cc: Likewise.
	* testsuite/23_containers/queue/requirements/constructible.cc: New.
	* testsuite/23_containers/stack/requirements/constructible.cc: New.

From-SVN: r244374
2017-01-12 17:28:36 +00:00
Kyrylo Tkachov
27282dadbf Add Cortex-A15 tuning to gcc.dg/uninit-pred-8_a.c
PR tree-optimization/78319
	* gcc.dg/uninit-pred-8_a.c: Add -mtune=cortex-a15 for arm.
	Remove xfail.

From-SVN: r244372
2017-01-12 17:02:38 +00:00
Uros Bizjak
2da3add55b * config/i386/i386.c: Fix whitespace.
From-SVN: r244371
2017-01-12 17:12:22 +01:00
Uros Bizjak
211a2f4acd * config/i386/i386.c (PTA_SGX): Define to 1 << 63.
From-SVN: r244370
2017-01-12 17:10:14 +01:00
Arnaud Charlet
ca0eb951e3 [multiple changes]
2017-01-12  Tristan Gingold  <gingold@adacore.com>

	* s-mmap.ads, s-mmap.adb, s-mmosin-unix.ads, s-mmosin-unix.adb,
	s-mmauni-long.ads, s-mmosin-mingw.ads, s-mmosin-mingw.adb: New files.

2017-01-12  Yannick Moy  <moy@adacore.com>

	* errout.adb, errout.ads (Initialize): Factor common treatment
	in Reset_Warnings.
	(Reset_Warnings): New procedure to reset counts related to warnings.
	(Record_Compilation_Errors): New variable to store the presence of an
	error, used in gnat2why to allow changing the Warning_Mode.
	(Compilation_Errors): Use new variable Record_Compilation_Errors to
	store the presence of an error.

2017-01-12  Javier Miranda  <miranda@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications):
	For Interrupt_Handler and Attach_ Handler aspects, decorate the
	internally built reference to the protected procedure as coming
	from sources and force its analysis.

2017-01-12  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Type): For a scalar derived type,
	inherit predicates if any from the first_subtype of the parent,
	not from the anonymous parent type.
	* sem_eval.adb (Is_Static_Subtype): A type that inherits a dynamic
	predicate is not a static subtype.

2017-01-12  Gary Dismukes  <dismukes@adacore.com>

	* freeze.adb (Check_Suspicious_Convention): New procedure
	performing a warning check on discriminated record types with
	convention C or C++. Factored out of procedure Freeze_Record_Type,
	and changed to only apply to base types (to avoid spurious
	warnings on subtypes). Minor improvement of warning messages
	to refer to discriminated rather than variant record types.
	(Freeze_Record_Type): Remove code for performing a suspicious
	convention check.
	(Freeze_Entity): Only call Freeze_Record_Type
	on types that aren't declared within any enclosing generic units
	(rather than just excluding the type when the innermost scope
	is generic). Call Check_Suspicious_Convention whether or not
	the type is declared within a generic unit.
	* sem_ch8.adb (In_Generic_Scope): Move this function to Sem_Util.
	* sem_util.ads, sem_util.adb (In_Generic_Scope): New function (moved
	from Sem_Ch8).

2017-01-12  Tristan Gingold  <gingold@adacore.com>

	* sysdep.c, adaint.c, rtinit.c, ming32.h:
	(__gnat_current_codepage): Renamed from CurrentCodePage
	(__gnat_current_ccs_encoding): Renamed from CurrentCCSEncoding

2017-01-12  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Fully_Conformant_Expressions): Handle properly
	quantified expressions, following AI12-050: the loop parameters
	of two quantified expressions are conformant if they have the
	same identifier.

From-SVN: r244369
2017-01-12 17:01:16 +01:00
Bill Schmidt
6611316649 re PR target/79044 (ICE in insn_is_swappable_p, at config/rs6000/rs6000.c:41191)
[gcc]

2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/79044
	* config/rs6000/rs6000.c (insn_is_swappable_p): Mark
	element-reversing loads and stores as not swappable.

[gcc/testsuite]

2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/79044
	* gcc.target/powerpc/swaps-p8-26.c: New.

From-SVN: r244368
2017-01-12 16:01:13 +00:00
Arnaud Charlet
4e41b0e67f * gcc-interface/Makefile.in: Clean up VxWorks targets.
From-SVN: r244367
2017-01-12 16:57:45 +01:00
Arnaud Charlet
0289a8d7ef [multiple changes]
2017-01-12  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute_Reference, case Loop_Entry):
	Hnadle properly the attribute reference when it appears as part
	of an expression in another loop aspect.

2017-01-12  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Check_Predicated_Discriminant): New procedure,
	subsidiary of Build_Initialization_Call, to complete generation
	of predicate checks on discriminants whose (sub)types have
	predicates, and to add checks on variants that do not have an
	others clause.
	* sem_util.adb (Gather_Components): A missing Others alternative is
	not an error when the type of the discriminant is a static predicate
	(and coverage has been checked when analyzing the case statement). A
	runtime check is generated to verify that a given discriminant
	satisfies the predicate (RM 3.8.1. (21.1/2)).

2017-01-12  Yannick Moy  <moy@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Only
	perform checking of exception mechanism when generating code.

2017-01-12  Justin Squirek  <squirek@adacore.com>

	* exp_ch7.adb (Add_Type_Invariants, Process_Array_Component):
	Remove handling of access component with invariant.
	(Build_Invariant_Procedure_Declaration): Remove return on class
	wide type.
	* freeze.adb (Freeze_Array_Type, Freeze_Record_Type): Remove
	conditional exception for component or array so Has_Own_Invariants
	flag is not falsly set.
	* sem_ch3.adb (Make_Class_Wide_Type): Initialize copy of class
	wide type to have no invariant flags.

From-SVN: r244366
2017-01-12 15:42:42 +01:00
Arnaud Charlet
2168d7cc3b [multiple changes]
2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.adb, sem_prag.adb, s-tassta.adb, sem_util.adb, s-tarest.adb,
	sem_ch13.adb: Minor reformatting.

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): Guard against a missing
	adjustment primitive when the ancestor type was not properly frozen.
	(Gen_Assign): Guard against a missing initialization
	primitive when the component type was not properly frozen.
	(Initialize_Array_Component): Guard against a missing adjustment
	primitive when the component type was not properly frozen.
	(Initialize_Record_Component): Guard against a missing adjustment
	primitive when the component type was not properly frozen.
	(Process_Transient_Component_Completion): The transient object may
	not be finalized when its associated type was not properly frozen.
	* exp_ch3.adb (Build_Assignment): Guard against a missing
	adjustment primitive when the component type was not properly frozen.
	(Build_Initialization_Call): Guard against a missing
	initialization primitive when the associated type was not properly
	frozen.
	(Expand_N_Object_Declaration): Guard against a missing
	adjustment primitive when the base type was not properly frozen.
	(Predefined_Primitive_Bodies): Create an empty Deep_Adjust
	body when there is no adjustment primitive available. Create an
	empty Deep_Finalize body when there is no finalization primitive
	available.
	* exp_ch4.adb (Apply_Accessibility_Check): Guard against a
	missing finalization primitive when the designated type was
	not properly frozen.
	(Expand_N_Allocator): Guard against a missing initialization primitive
	when the designated type was not properly frozen.
	* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add the adjustment call
	only when the corresponding adjustment primitive is available.
	* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Generate the
	adjustment/finalization statements only when there is an available
	primitive to carry out the action.
	(Build_Initialize_Statements): Generate the initialization/finalization
	statements only when there is an available primitive to carry out the
	action.
	(Make_Adjust_Call): Do not generate a call when the underlying
	type is not present due to a possible missing full view.
	(Make_Final_Call): Do not generate a call when the underlying
	type is not present due to a possible missing full view.
	(Make_Finalize_Address_Stmts): Generate an empty body when the
	designated type lacks a finalization primitive.
	(Make_Init_Call): Do not generate a call when the underlying type is
	not present due to a possible missing full view.
	(Process_Component_For_Adjust): Add the adjustment call only when the
	corresponding adjustment primitive is available.
	(Process_Component_For_Finalize): Add the finalization call only when
	the corresponding finalization primitive is available.
	(Process_Object_Declaration): Use a null statement to emulate a
	missing call to the finalization primitive of the object type.
	* exp_ch7.ads (Make_Adjust_Call): Update the comment on usage.
	(Make_Final_Call): Update the comment on usage.
	(Make_Init_Call): Update the comment on usage.
	* exp_util.adb (Build_Transient_Object_Statements): Code reformatting.

2017-01-12  Arnaud Charlet  <charlet@adacore.com>

	* einfo.ads: Update documentation of Address_Taken.
	* sem_attr.adb (Analyze_Access_Attribute, Resolve_Attribute
	[Access_Attribute]): Only consider 'Access/'Unchecked_Access
	for subprograms when setting Address_Taken flag.

2017-01-12  Patrick Bernardi  <bernardi@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause): Removed code that turned
	Configurable_Run_Time_Mode off when analysing with'ed predefined
	libraries.

From-SVN: r244365
2017-01-12 15:40:14 +01:00
Jonathan Wakely
4704f28e7a PR66284 remove std::function special case for reference_wrapper
PR libstdc++/66284
	* doc/xml/manual/intro.xml: Document LWG 2781 change.
	* doc/html/*: Regenerate.
	* include/std/functional (_Function_base::_Ref_manager): Remove.
	(_Function_handler): Remove partial specializations for
	reference_wrapper.
	(function::target): Remove special case for const qualification.
	* testsuite/20_util/function/6.cc: Adjust tests for target type.
	* testsuite/20_util/function/7.cc: Likewise.
	* testsuite/20_util/function/8.cc: Likewise.

From-SVN: r244364
2017-01-12 14:28:38 +00:00
Gary Dismukes
872fc7b53d sem_prag.adb: Minor reformatting.
2017-01-12  Gary Dismukes  <dismukes@adacore.com>

	* sem_prag.adb: Minor reformatting.
	* sem_util.adb (Unique_Entity): fix result for
	bodies of entry families.

From-SVN: r244363
2017-01-12 14:59:45 +01:00
Justin Squirek
00420f7430 sem_prag.adb (Analyze_Pragma): Add appropriate calls to Resolve_Suppressible in the pragma Assertion_Policy case.
2017-01-12  Justin Squirek  <squirek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Add appropriate calls to
	Resolve_Suppressible in the pragma Assertion_Policy case.
	(Resolve_Suppressible): Created this function to factor out
	common code used to resolve Suppress to either Ignore or Check
	* snames.ads-tmpl: Add name for Suppressible.

From-SVN: r244362
2017-01-12 14:55:59 +01:00
Nathan Sidwell
0691440320 combine.c (try_combine): Don't ignore result of overlap checking loop.
* combine.c (try_combine): Don't ignore result of overlap checking
	loop.  Combine overlap & asm check into single loop.

Co-Authored-By: Nicolai Stange <nicstange@gmail.com>

From-SVN: r244361
2017-01-12 13:54:43 +00:00
Gary Dismukes
4bfe4a99e0 exp_ch9.adb, [...]: Minor reformatting.
2017-01-12  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch9.adb, s-secsta.adb, snames.ads-tmpl, exp_ch3.adb: Minor
	reformatting.
	* debug.adb: Minor comment fixes.

From-SVN: r244360
2017-01-12 14:54:16 +01:00
Arnaud Charlet
fedb083041 Change percentage to 25
From-SVN: r244359
2017-01-12 14:50:33 +01:00
Arnaud Charlet
eacfa9bc8c [multiple changes]
2017-01-12  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.adb (Unique_Entity): For concurrent
	bodies that are defined with stubs and complete a declaration
	of a single concurrent object return the entity of an implicit
	concurrent type, not the entity of the anonymous concurrent
	object.
	* debug.adb: -gnatd.J is no longer used.
	* make.adb (Globalize): Removed, no longer used.
	* sem_ch9.adb: minor typo in comment for entry index

2017-01-12  Patrick Bernardi  <bernardi@adacore.com>

	* aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
	* exp_ch3.adb (Build_Init_Statements): As part of initialising
	the value record of a task, set its _Secondary_Stack_Size field
	if present.
	* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
	a _Secondary_Stack_Size field in the value record of
	the task if a Secondary_Stack_Size rep item is present.
	(Make_Task_Create_Call): Include secondary stack size
	parameter. If No_Secondary_Stack restriction is in place, passes
	stack size of 0.
	* par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
	Secondary_Stack_Size.
	* s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
	function to define the overhead of the secondary stack.
	* s-tarest.adb (Create_Restricted_Task,
	Create_Restricted_Task_Sequential): Functions now include
	Secondary_Stack_Size parameter to pass to Initialize_ATCB.
	* s-tarest.adb (Create_Restricted_Task,
	Create_Restricted_Task_Sequential): Calls to Initialize_ATCB now
	include Secondary_Stack_Size parameter.
	(Task_Wrapper): Secondary stack now allocated to the size specified by
	the Secondary_Stack_Size parameter in the task's ATCB.
	* s-taskin.adb, s-taskin.adb (Common_ATCB, Initialize_ATCB): New
	Secondary_Stack_Size component.
	* s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
	Create_Restricted_Task_Sequential): Function now include
	Secondary_Stack_Size parameter.
	(Task_Wrapper): Secondary stack now allocated to the size
	specified by the Secondary_Stack_Size parameter in the task's
	ATCB.
	* s-tproft.adb (Register_Foreign_Thread): Amended Initialize_ATCB call
	to include Secondary_Stack_Size parameter.
	* sem_ch13.adb (Analyze_Aspect_Specification): Add support for
	Secondary_Stack_Size aspect, turning the aspect into its corresponding
	internal attribute.
	(Analyze_Attribute_Definition): Process Secondary_Stack_Size attribute.
	* snames.adb-tmpl, snames.ads-tmpl: Added names
	Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
	Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.

From-SVN: r244358
2017-01-12 14:49:46 +01:00
Arnaud Charlet
52108814f5 Minor reformatting.
From-SVN: r244357
2017-01-12 14:30:56 +01:00
Arnaud Charlet
5f325af260 [multiple changes]
2017-01-12  Yannick Moy  <moy@adacore.com>

	* exp_spark.adb (Expand_SPARK_Potential_Renaming): Fix sloc of copied
	subtree.

2017-01-12  Justin Squirek  <squirek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference):
	Fix Finalization_Size case by properly resolving the type after
	rewritting the node.

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb (Build_DIC_Procedure_Body): Semi-insert the body into
	the tree.
	(Build_DIC_Procedure_Declaration): Semi-insert the body into the tree.
	* binde.adb, exp_ch5.adb, sem_type.adb, sem.ads, sem_res.adb,
	exp_sel.ads: Minor reformatting.

2017-01-12  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Expand_Call): Add guard to prevent
	invariant checks from being created for internally generated
	subprograms.

2017-01-12  Bob Duff  <duff@adacore.com>

	* lib-writ.ads: Remove incorrect comment.

2017-01-12  Javier Miranda  <miranda@adacore.com>

	* debug.adb (-gnatd.K): Enable generation of contract-only
	procedures in CodePeer mode.
	* contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
	New subprogram.
	(Analyze_Contracts): Generate contract-only procedures if -gnatdK is
	set.
	* scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): New
	subprogram.
	(Get_Contract_Only_Missing_Body_Name): New subprogram.
	(Get_Contract_Only_Body): New subprogram.
	(Set_Contract_Only_Body): New subprogram.
	(Is_Contract_Only_Body): New subprogram.
	(Set_Is_Contract_Only_Body): New subprogram.
	(SCIL_Nodes): Replace table by hash-table.

From-SVN: r244356
2017-01-12 14:30:20 +01:00
Arnaud Charlet
10c2c151f1 [multiple changes]
2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb: Minor reformatting.
	* spark_xrefs.ads: minor cleanup of comments for SPARK xrefs

2017-01-12  Bob Duff  <duff@adacore.com>

	* binde.adb (Forced): New reason for a dependence.
	(Force_Elab_Order): Implementation of the new switch.
	* binde.ads: Minor comment fixes.
	* bindusg.adb: Add -f switch. Apparently, there was an -f switch
	long ago that is no longer supported; removed comment about that.
	* opt.ads (Force_Elab_Order_File): Name of file specified for
	-f switch.
	* switch-b.adb: Parse -f switch.

From-SVN: r244355
2017-01-12 14:26:34 +01:00
Justin Squirek
84e1361435 exp_ch6.adb (Check_View_Conversion): Created this function to properly chain calls to check type invariants that may...
2017-01-12  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Check_View_Conversion): Created this function
	to properly chain calls to check type invariants that may be
	present in a subprogram call after the subprogram.
	(Expand_Call): Add a conditional to identify when a view conversion
	needs to be checked.
	* nlists.adb, nlists.ads (Prepend_New): New routine.
	(Prepend_New_To): New routine.

From-SVN: r244354
2017-01-12 14:24:16 +01:00
Arnaud Charlet
e51102b29c [multiple changes]
2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* sinfo.ads: Minor reformatting.

2017-01-12  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb, exp_util.ads, einfo.ads: Minor typo fixes and
	reformatting.

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context): Add new
	variable Definite. Create a local object and pass its 'Access to the
	BIP function when the result type is either definite or it does not
	require any finalization or secondary stack management.

From-SVN: r244353
2017-01-12 14:21:21 +01:00
Bob Duff
6e759c2a0f contracts.adb, [...] (Pragma_Name): Change name to Pragma_Name_Unmapped.
2017-01-12  Bob Duff  <duff@adacore.com>

	* contracts.adb, einfo.adb, errout.adb, exp_attr.adb,
	exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_prag.adb, freeze.adb,
	frontend.adb, ghost.adb, inline.adb, lib-writ.adb, lib-xref.adb,
	par.adb, par-ch10.adb, par-ch2.adb, par-prag.adb, par_sco.adb,
	sem_attr.adb, sem_aux.adb, sem_ch10.adb, sem_ch12.adb,
	sem_ch13.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
	sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads,
	sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb (Pragma_Name):
	Change name to Pragma_Name_Unmapped.
	(Pragma_Name_Mapped): Change name to Pragma_Name.
	This is because the "mapped" version should be the usual case.

From-SVN: r244352
2017-01-12 14:18:47 +01:00
Richard Biener
6bb4ea5cdf tree-pretty-print.c (dump_generic_node): Provide -gimple variant for MEM_REF.
2017-01-12  Richard Biener  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): Provide -gimple
	variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.

	c/
	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
	__MEM.

	* gcc.dg/gimplefe-21.c: New testcase.

From-SVN: r244350
2017-01-12 08:33:09 +00:00
Richard Biener
ef9d56f8ac tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION and TS_TARGET_OPTION directly derive from TS_BASE.
2017-01-12  Richard Biener  <rguenther@suse.de>

	* tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
	and TS_TARGET_OPTION directly derive from TS_BASE.
	* tree-core.h (tree_optimization_option): Derive from tree_base.
	(tree_target_option): Likewise.

From-SVN: r244349
2017-01-12 08:13:43 +00:00
Michael Collison
f15dbadbf6 zero_bits_compound-2.c: Fix test for aarch64.
2016-11-30  Michael Collison  <michael.collison@arm.com>

	* gcc.dg/zero_bits_compound-2.c: Fix test for aarch64.

From-SVN: r244348
2017-01-12 08:12:02 +00:00
GCC Administrator
da7069127c Daily bump.
From-SVN: r244346
2017-01-12 00:16:14 +00:00
Uros Bizjak
f69dacdae5 i386.c (memory_address_length): Increase len only when rip_relative_addr_p returns false.
* config/i386/i386.c (memory_address_length): Increase len
	only when rip_relative_addr_p returns false.

From-SVN: r244341
2017-01-11 22:53:45 +01:00
Jason Merrill
91d01bf40a PR c++/78337 - ICE on invalid with generic lambda
* semantics.c (process_outer_var_ref): Check if containing_function
	is null.  Move inform call under complain test.

From-SVN: r244340
2017-01-11 16:43:42 -05:00
Julia Koval
73e32c4743 i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
* common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
	(OPTION_MASK_ISA_SGX_SET): New.
	(ix86_handle_option): Handle OPT_msgx.
	* config.gcc: Added sgxintrin.h.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
	* config/i386/i386.c (ix86_target_string): Add -msgx.
	(PTA_SGX): New.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add sgx.
	* config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
	* config/i386/i386.opt: Add msgx.
	* config/i386/sgxintrin.h: New file.
	* config/i386/x86intrin.h: Add sgxintrin.h.

testsuite/ChangeLog:

	* gcc.target/i386/sgx.c New test.
	* gcc.target/i386/sse-12.c: Add -msgx.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.
	* g++.dg/other/i386-2.C: Ditto.
	* g++.dg/other/i386-3.C: Ditto.


Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r244339
2017-01-11 22:41:13 +01:00
Jakub Jelinek
fa8438f71c Fix up a typo.
From-SVN: r244338
2017-01-11 22:39:25 +01:00
Martin Sebor
3594adc7b0 PR c++/24511 - [DR 470] explicit instantiation/extern template unsats
PR c++/24511 - [DR 470] explicit instantiation/extern template unsats
// on symbols defined later

gcc/testsuite/ChangeLog:
	* g++.dg/template/explicit9.C: New test.

From-SVN: r244337
2017-01-11 14:02:46 -07:00
Nathan Sidwell
01bfd25762 re PR c++/77812 (incorrectly rejects valid C++ code that uses enum in template instantiation)
cp/
	PR c++/77812
	* name-lookup.c (set_namespace_binding_1): An overload of 1 decl
	is a new overload.

	testsuite/
	PR c++/77812
	* g++.dg/pr77812.C: New.

From-SVN: r244335
2017-01-11 20:37:16 +00:00