Commit Graph

145750 Commits

Author SHA1 Message Date
Cesar Philippidis
778864283e c-common.h (enum c_omp_region_type): Define.
gcc/c-family/
	* c-common.h (enum c_omp_region_type): Define.

	gcc/c/
	* c-parser.c (c_parser_oacc_all_clauses): Update call to
	c_finish_omp_clauses.
	(c_parser_omp_all_clauses): Likewise.
	(c_parser_oacc_cache): Likewise.
	(c_parser_oacc_loop): Likewise.
	(omp_split_clauses): Likewise.
	(c_parser_omp_declare_target): Likewise.
	(c_parser_cilk_all_clauses): Likewise.
	(c_parser_cilk_for): Likewise.
	* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
	is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.

	gcc/cp/
	* cp-tree.h (finish_omp_clauses): Update prototype.
	* parser.c (cp_parser_oacc_all_clauses): Update call to
	finish_omp_clauses.
	(cp_parser_omp_all_clauses): Likewise.
	(cp_parser_omp_for_loop): Likewise.
	(cp_omp_split_clauses): Likewise.
	(cp_parser_oacc_cache): Likewise.
	(cp_parser_oacc_loop): Likewise.
	(cp_parser_omp_declare_target):
	(cp_parser_cilk_simd_all_clauses): Likewise.
	(cp_parser_cilk_for): Likewise.
	* pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
	arguments with enum c_omp_region_type ort.
	(tsubst_omp_clauses): Update calls to finish_omp_clauses.
	(tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
	(tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
	(tsubst_expr): Update calls to tsubst_omp_clauses.
	* semantics.c (finish_omp_clauses): Replace bool arguments
	allow_fields, declare_simd, and is_cilk with bitmask ort.
	(finish_omp_for): Update call to finish_omp_clauses.

From-SVN: r235780
2016-05-02 11:49:15 -07:00
David Malcolm
474e0129ac PR c++/62314: add fixit hint for missing "template <> " in explicit specialization
gcc/cp/ChangeLog:
	PR c++/62314
	* parser.c (cp_parser_class_head): Capture the start location;
	use it to emit a fix-it insertion hint when complaining
	about missing "template <> " in explicit specializations.

gcc/testsuite/ChangeLog:
	PR c++/62314
	* g++.dg/pr62314.C: New test case.

From-SVN: r235777
2016-05-02 18:36:40 +00:00
Nathan Sidwell
4877b5a4ac omp-low.c (lower_oacc_head_tail): Assert there is at least one marker.
* omp-low.c (lower_oacc_head_tail): Assert there is at least one
	marker.
	(oacc_loop_process): Check mask for loop termination.

From-SVN: r235775
2016-05-02 18:27:40 +00:00
Rainer Orth
4344d7fa74 Don't install libvtv without --enable-vtable-verify
* Makefile.am (toolexeclib_LTLIBRARIES): Only set if
	ENABLE_VTABLE_VERIFY.
	Simplify.
	* Makefile.in: Regenerate.

From-SVN: r235772
2016-05-02 18:10:17 +00:00
Jan Hubicka
201da53f66 ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert accidental change.
* ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
	accidental change.

From-SVN: r235771
2016-05-02 17:38:53 +00:00
Jan Hubicka
fd5fac4c8c * cif-code.def (CIF_THUNK): Add.
From-SVN: r235770
2016-05-02 17:34:32 +00:00
Joseph Myers
ed3c0c8e0c * sv.po, zh_CN.po: Update.
From-SVN: r235768
2016-05-02 18:27:36 +01:00
Marcel Böhme
bfbc839a0b Demangler integer overflow fixes from Marcel Böhme.
PR c++/70498
	* cp-demangle.c: Parse numbers as integer instead of long to avoid
	overflow after sanity checks. Include <limits.h> if available.
	(INT_MAX): Define if necessary.
	(d_make_template_param): Takes integer argument instead of long.
	(d_make_function_param): Likewise.
	(d_append_num): Likewise.
	(d_identifier): Likewise.
	(d_number): Parse as and return integer.
	(d_compact_number): Handle overflow.
	(d_source_name): Change variable type to integer for parsed number.
	(d_java_resource): Likewise.
	(d_special_name): Likewise.
	(d_discriminator): Likewise.
	(d_unnamed_type): Likewise.
	* testsuite/demangle-expected: Add regression test cases.

From-SVN: r235767
2016-05-02 17:06:40 +00:00
Jan Hubicka
818b88a7a1 ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
* ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
	(dump_inline_summary): Dump it.
	(fp_expression_p): New predicate.
	(estimate_function_body_sizes): Use it.
	(inline_merge_summary): Merge fp_expressions.
	(inline_read_section): Read fp_expressions.
	(inline_write_summary): Write fp_expressions.
	* ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
	codegen boundary if either caller or callee is !fp_expressions.
	* ipa-inline.h (inline_summary): Add fp_expressions.
	* ipa-inline-transform.c (inline_call): When inlining !fp_expressions
	to fp_expressions be sure the fp generation flags are updated.

	* gcc.dg/ipa/inline-8.c: New testcase.

From-SVN: r235766
2016-05-02 16:55:56 +00:00
Jakub Jelinek
dd77684f05 re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)
PR rtl-optimization/70467
	* cse.c (cse_insn): Handle no-op MEM moves after folding.

	* gcc.target/i386/pr70467-1.c: New test.

From-SVN: r235765
2016-05-02 18:46:10 +02:00
Jakub Jelinek
d40790c8ac re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)
PR rtl-optimization/70467
	* ipa-pure-const.c (check_call): Handle internal calls even in
	ipa mode like in local mode.

From-SVN: r235764
2016-05-02 18:17:02 +02:00
Bernd Edlinger
00f357941d configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.
        * configure: Regenerated.
        * Makefile.def (gmp): Explicitly disable assembler.
        (mpfr): Adjust lib_path.
        (mpc): Likewise.
        * Makefile.in: Regenerated.

gcc/
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.

contrib/
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * download_prerequisites: Adjust gmp/mpfr/mpc versions.

From-SVN: r235763
2016-05-02 15:23:20 +00:00
Bernd Edlinger
72407e00fd spec-options.c: Run the test on all targets.
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.dg/spec-options.c: Run the test on all targets.
        * gcc.dg/foo.specs: Use cpp_unique_options.

From-SVN: r235762
2016-05-02 14:41:25 +00:00
Marc Glisse
dd53d197a2 Canonicalize X u< X to UNORDERED_EXPR
2016-05-02  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (X u< X, X u> X): New transformations.

gcc/testsuite/
	* gcc.dg/tree-ssa/unord.c: New testcase.

From-SVN: r235761
2016-05-02 14:32:53 +00:00
Marc Glisse
a8b85ce9e2 Move "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd
2016-05-02  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* flag-types.h (enum warn_strict_overflow_code): Move ...
	* coretypes.h: ... here.
	* fold-const.h (fold_overflow_warning): Declare.
	* fold-const.c (fold_overflow_warning): Make non-static.
	(fold_comparison): Move the transformation of X +- C1 CMP C2
	into X CMP C2 -+ C1 ...
	* match.pd: ... here.
	* gimple-fold.c (fold_stmt_1): Protect with
	fold_defer_overflow_warnings.

gcc/testsuite/
	* gcc.dg/tree-ssa/20040305-1.c: Adjust.

From-SVN: r235760
2016-05-02 14:09:07 +00:00
Nathan Sidwell
5b37e8664b omp-low.c (struct oacc_loop): Add 'inner' field.
gcc/
	* omp-low.c (struct oacc_loop): Add 'inner' field.
	(new_oacc_loop_raw): Initialize it to zero.
	(oacc_loop_fixed_partitions): Initialize it.
	(oacc_loop_auto_partitions): Partition outermost loop to outermost
	available partitioning.

	gcc/testsuite/
	* c-c++-common/goacc/loop-auto-1.c: Adjust expected warnings.

	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
	expected partitioning.

From-SVN: r235756
2016-05-02 13:16:22 +00:00
Rainer Orth
87cdf04b1a Fix make install-gcc-specs with empty GCC_SPEC_FILES
* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
	Honor DESTDIR.

From-SVN: r235754
2016-05-02 13:08:59 +00:00
Marek Polacek
7176a4a096 re PR c/70851 (internal compiler error: in create_tmp_var, at gimple-expr.c:473)
PR c/70851
	* c-decl.c (grokdeclarator): Diagnose when array's size has an
	incomplete type.

	* gcc.dg/enum-incomplete-3.c: New test.

From-SVN: r235750
2016-05-02 11:35:59 +00:00
Claudiu Zissulescu
b5a5ade831 [ARC] Various instruction pattern fixes
gcc/
2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (mulsidi3): Change operand 0 predicate to
	register_operand.
	(umulsidi3): Likewise.
	(indirect_jump): Fix jump instruction assembly patterns.

From-SVN: r235749
2016-05-02 13:26:57 +02:00
Thomas Schwinge
e91cacaedb [PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value
gcc/
	PR target/70860
	* config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
	(nvptx_function_value): Assert non-NULL cfun.

From-SVN: r235748
2016-05-02 13:25:17 +02:00
Arnaud Charlet
c408fb34f9 Minor reformatting.
From-SVN: r235747
2016-05-02 12:37:34 +02:00
Arnaud Charlet
a56886e9df [multiple changes]
2016-05-02  Tristan Gingold  <gingold@adacore.com>

	* fname.adb (Is_Predefined_File_Name): Also consider non-krunched
	i-* names.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Aggregate_Constraint_Checks): Separate
	accessibility checks and non-null checks for aggregate components,
	to prevent spurious accessibility errors.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (OK_For_Limited_Init): A type conversion is not
	always legal in the in-place initialization of a limited entity
	(e.g. an allocator).
	* sem_res.adb (Resolve_Allocator): Improve error message with RM
	reference  when allocator expression is illegal.

From-SVN: r235746
2016-05-02 12:36:45 +02:00
Arnaud Charlet
fc3819c9b4 [multiple changes]
2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Call): When inlining a call to a function
	declared in a package instance, locate the instance node of the
	package after the actual package declaration. skipping over
	pragmas that may have been introduced when the generic unit
	carries aspects that are transformed into pragmas.

2016-05-02  Bob Duff  <duff@adacore.com>

	* s-memory.adb (Alloc, Realloc): Move checks
	for Size = 0 or size_t'Last into the Result = System.Null_Address
	path for efficiency. Improve comments (based on actual C language
	requirements for malloc).
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the
	case where we are using the default Global_Pool_Object, and we
	don't need the heavy finalization machinery.

From-SVN: r235745
2016-05-02 12:34:16 +02:00
Arnaud Charlet
494a7e4533 Minor reformatting.
From-SVN: r235744
2016-05-02 12:31:39 +02:00
Gary Dismukes
14c3ae9af8 exp_util.ads, [...]: Minor reformatting.
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.ads, sem_ch12.adb: Minor reformatting.

From-SVN: r235743
2016-05-02 12:31:25 +02:00
Arnaud Charlet
89d3b1a133 [multiple changes]
2016-05-02  Javier Miranda  <miranda@adacore.com>

	* exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal.
	(Remove_Side_Effects): Adding a new formal.
	* exp_ch6.adb (Expand_Simple_Function_Return): Generating the
	call to the _Postconditions procedure ensure that side-effects
	are unconditionally removed.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch):
	Use original node to determine whether the declaration is for
	a formal type declaration, to take into account that formwl
	private types are rewritten as private extension declarations
	to simplify semantic analysis.

From-SVN: r235742
2016-05-02 12:30:23 +02:00
Gary Dismukes
ca90b9623d exp_ch9.adb, [...]: Minor reformatting and typo fixes.
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo
	fixes.

From-SVN: r235741
2016-05-02 12:29:12 +02:00
Arnaud Charlet
bac5ba153d [multiple changes]
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor
	reformatting.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Allocator): If the designated type
	is a private derived type with no discriminants, examine its
	underlying_full_view to determine whether the full view has
	defaulted discriminants, so their defaults can be used in the
	call to the initialization procedure for the designated object.

From-SVN: r235740
2016-05-02 12:27:18 +02:00
Arnaud Charlet
42f11e4c26 [multiple changes]
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_prag.adb, comperr.adb: Minor reformatting.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an
	unchecked conversion if the source size is 0 (indicating that
	its RM size is unknown). This will happen with packed arrays of
	non-discrete types, in which case the component type is known
	to match.

2016-05-02  Arnaud Charlet  <charlet@adacore.com>

	* debug.adb: Reserve -gnatd.V.

2016-05-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Process_Full_View): Remove from visibility
	wrappers of synchronized types to avoid spurious errors with
	their wrapped entity.
	* exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper
	if no interface primitive is covered by the subprogram and this is
	not a primitive declared between two views; see Process_Full_View.
	(Build_Protected_Sub_Specification): Link the dispatching
	subprogram with its original non-dispatching protected subprogram
	since their names differ.
	(Expand_N_Protected_Type_Declaration):
	If a protected subprogram overrides an interface primitive then
	do not build a wrapper if it was already built.
	* einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute.
	* sem_ch4.adb (Names_Match): New subprogram.
	* sem_ch6.adb (Check_Synchronized_Overriding): Moved
	to library level and defined in the public part of the
	package to invoke it from Exp_Ch9.Build_Wrapper_Spec
	(Has_Matching_Entry_Or_Subprogram): New subprogram.
	(Report_Conflict): New subprogram.

From-SVN: r235739
2016-05-02 12:18:12 +02:00
Arnaud Charlet
331e50151c [multiple changes]
2016-05-02  Jerome Lambourg  <lambourg@adacore.com>

	* s-unstyp.ads: Code cleanups.

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch13.adb (Size_Too_Small_Error): Fix the error message format.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_prag.adb (Expand_attributes_In_Consequence,
	Expand_Attributes): If the prefix of'Old is an unconstrained type,
	for example an unconstrained formal of the enclosing subprogram,
	create an object declaration with an expression to obtain the
	actual subtype of the temporary.

2016-05-02  Arnaud Charlet  <charlet@adacore.com>

	* comperr.adb (Delete_SCIL_Files): Add missing handling of
	N_Subprogram_Declaration.

From-SVN: r235738
2016-05-02 12:14:23 +02:00
Arnaud Charlet
2c94bbe3c2 Minor reformatting.
From-SVN: r235737
2016-05-02 12:10:21 +02:00
Arnaud Charlet
2cc2e9642b [multiple changes]
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
	gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
	fixes.
	* sem_prag.adb, sem_ch12.adb: Minor typo fixes.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
	function call may be wrapped in an explicit type conversion.

2016-05-02  Jerome Lambourg  <lambourg@adacore.com>

	* interfac.ads: use pragma No_Elaboration_Code_All.
	* s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Analyze: If node is an error node previously created
	by the parser, disable expansion to prevent subsequent glitches
	in error recovery.

From-SVN: r235736
2016-05-02 12:10:01 +02:00
Eric Botcazou
08e5cf2252 re PR rtl-optimization/70886 (-frename-registers causes boostrap comparison failures on ia64)
PR rtl-optimization/70886
	* sched-deps.c (estimate_dep_weak): Canonicalize cselib values.

	* cselib.h (rtx_equal_for_cselib_1): Declare.
	(rtx_equal_for_cselib_p: New inline function.
	* cselib.c (rtx_equal_for_cselib_p): Delete.
	(rtx_equal_for_cselib_1): Make public.

From-SVN: r235735
2016-05-02 10:08:59 +00:00
Arnaud Charlet
86d2f05621 Minor reformatting.
From-SVN: r235734
2016-05-02 12:07:02 +02:00
Hristian Kirtchev
51122913ce sem_ch13.adb (Alignment_Error): Removed.
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch13.adb (Alignment_Error): Removed.
	(Get_Alignment_Value): Code cleanup.

From-SVN: r235733
2016-05-02 12:06:45 +02:00
Arnaud Charlet
32b794c81a [multiple changes]
2016-05-02  Tristan Gingold  <gingold@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected
	to check for the no local protected objects restriction.

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb Anonymous_Master now uses Node35.
	(Anonymous_Master): Update the assertion and node reference.
	(Set_Anonymous_Master): Update the assertion and node reference.
	(Write_Field35_Name): Add output for Anonymous_Master.
	(Write_Field36_Name): The output is now undefined.
	* einfo.ads Update the node and description of attribute
	Anonymous_Master. Remove prior occurrences in entities as this
	is now a type attribute.
	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove local variable
	Ins_Node. Anonymous access- to-controlled component types no
	longer need finalization masters. The master is now built when
	a related allocator is expanded.
	(Expand_Freeze_Record_Type): Remove local variable Has_AACC. Do not
	detect whether the record type has at least one component of anonymous
	access-to- controlled type. These types no longer need finalization
	masters. The master is now built when a related allocator is expanded.
	* exp_ch4.adb Remove with and use clauses for Lib and Sem_Ch8.
	(Current_Anonymous_Master): Removed.
	(Expand_N_Allocator): Call Build_Anonymous_Master to create a
	finalization master for an anonymous access-to-controlled type.
	* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
	Call routine Build_Anonymous_Master to create a finalization master
	for an anonymous access-to-controlled type.
	* exp_ch7.adb (Allows_Finalization_Master): New routine.
	(Build_Anonymous_Master): New routine.
	(Build_Finalization_Master): Remove formal parameter
	For_Anonymous. Use Allows_Finalization_Master to determine whether
	circumstances warrant a finalization master. This routine no
	longer creates masters for anonymous access-to-controlled types.
	(In_Deallocation_Instance): Removed.
	* exp_ch7.ads (Build_Anonymous_Master): New routine.
	(Build_Finalization_Master): Remove formal parameter For_Anonymous
	and update the comment on usage.
	* sem_util.adb (Get_Qualified_Name): New routines.
	(Output_Name): Reimplemented.
	(Output_Scope): Removed.
	* sem_util.ads (Get_Qualified_Name): New routines.

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* debug.adb: Document the use of switch -gnatd.H.
	* gnat1drv.adb (Adjust_Global_Switches): Set ASIS_GNSA mode when
	-gnatd.H is present.
	(Gnat1drv): Suppress the call to gigi when ASIS_GNSA mode is active.
	* opt.ads: Add new option ASIS_GNSA_Mode.
	* sem_ch13.adb (Alignment_Error): New routine.
	(Analyze_Attribute_Definition_Clause): Suppress certain errors in
	ASIS mode for attribute clause Alignment, Machine_Radix, Size, and
	Stream_Size.
	(Check_Size): Use routine Size_Too_Small_Error to
	suppress certain errors in ASIS mode.
	(Get_Alignment_Value): Use routine Alignment_Error to suppress certain
	errors in ASIS mode.
	(Size_Too_Small_Error): New routine.

From-SVN: r235732
2016-05-02 12:05:03 +02:00
Arnaud Charlet
4871a41df9 2016-05-02 Arnaud Charlet <charlet@adacore.com>
* spark_xrefs.ads Description of the spark cross-references
	clarified; small style fixes.
	* lib-xref-spark_specific.adb (Add_SPARK_Scope,
	Detect_And_Add_SPARK_Scope): consider protected types and bodies
	as yet another scopes.
	(Enclosing_Subprogram_Or_Library_Package): refactored using
	Hristian's suggestions; added support for scopes of protected
	types and bodies; fix for entries to return the scope of the
	enclosing concurrent type, which is consistent with what is
	returned for protected subprograms.
	* sem_intr.adb: Minor style fix in comment.

From-SVN: r235731
2016-05-02 12:00:00 +02:00
Arnaud Charlet
8d4611f7b0 [multiple changes]
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* lib-xref.ads, lib-xref-spark_specific.adb, get_spark_xrefs.adb,
	put_spark_xrefs.adb: Minor reformatting.

2016-05-02  Doug Rupp  <rupp@adacore.com>

	* g-traceb.ads: Document traceback for ARM.

2016-05-02  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_Tags): Do not generate the
	external name of interface tags adding the suffix counter since
	it causes problems at link time when the IP routines are inlined
	across units with optimization.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb (Predicates_Ignared): new flag to indicate
	that predicate checking is disabled for predicated subtypes in
	the context of an Assertion_Policy pragma.
	* checks.adb (Apply_Predicate_Check): Do nothing if
	Predicates_Ignored is true.
	* exp_ch3.adb (Expand_Freeze_Enumeration_Type): If
	Predicates_Ignores is true, the function Rep_To_Pos does raise
	an exception for invalid data.
	* exp_ch4.adb (Expand_N_Type_Conversion): IF target is a predicated
	type do not apply check if Predicates_Ignored is true.
	* exp_ch5.adb (Expand_N_Case_Statement): If Predicates_Ignored
	is true, sem_prag.adb:
	* sem_ch3.adb (Analyze_Object_Declaration): If Predicates_Ignored
	is true do not emit predicate check on initializing expression.

From-SVN: r235730
2016-05-02 11:57:54 +02:00
Arnaud Charlet
bcb0389ef3 get_spark_xrefs.adb (Get_Nat, Get_Name): Initialize variables when they are declared...
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

	* get_spark_xrefs.adb (Get_Nat, Get_Name): Initialize variables when
	they are declared; refine type of a counter from Integer to Natural.
	* sem_ch5.adb, gnatcmd.adb, s-intman-posix.adb, eval_fat.adb,
	prj.adb, sem_util.adb, s-intman-android.adb, prj-nmsc.adb, sem_ch8.adb,
	exp_ch3.adb: Minor editing.

From-SVN: r235729
2016-05-02 11:53:16 +02:00
Yannick Moy
ef25192bee a-tigeli.adb (Get_Line): Always set Last prior to returning.
2016-05-02  Yannick Moy  <moy@adacore.com>

	* a-tigeli.adb (Get_Line): Always set Last prior to returning.

2016-05-02  Yannick Moy  <moy@adacore.com>

	* lib-xref.adb: Minor style fix in whitespace of declarations.
	* put_spark_xrefs.adb (Put_SPARK_Xrefs): printing of strings
	refactored without loops.
	* put_spark_xrefs.ads (Write_Info_Str): new formal argument of
	generic procedure.
	* spark_xrefs.adb (Write_Info_Str): new actual in instantiation
	of generic procedure.

From-SVN: r235728
2016-05-02 11:50:45 +02:00
Uros Bizjak
ebae28e91b predicates.md (nonimm_ssenomem_operand): New predicate.
* config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
	(register_mixssei387nonimm_operand): Remove predicate.
	* config/i386/i386.md (*fop_<mode>_comm): Merge from
	*fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
	alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
	for TARGET_MIX_SSE_I387 alternatives.
	(*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
	Disable unsupported alternatives using "enabled" attribute.  Use
	nonimm_ssenomem_operand as operand 1 predicate.  Also check
	X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
	* config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
	(register_mixssei387nonimm_operand): Remove predicate.

From-SVN: r235727
2016-05-02 11:49:39 +02:00
Arnaud Charlet
eff69022b3 lib-xref-spark_specific.adb (Add_SPARK_Scope): add task type scope.
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

	* lib-xref-spark_specific.adb (Add_SPARK_Scope): add task type scope.
	(Detect_And_Add_SPARK_Scope): detect and add task type scope.
	(Enclosing_Subprogram_Or_Package): Respect boundaries of task
	and entry declarations.
	* spark_xrefs.ads: minor typo in comment.

From-SVN: r235726
2016-05-02 11:48:55 +02:00
Arnaud Charlet
fb8d37efa6 make.adb: Minor...
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

	* make.adb: Minor: avoid an exception when calling gnatmake with
	no argument and gnatmake is built with checks on.
	* lib-xref-spark_specific.adb: Minor code cleanup.

From-SVN: r235725
2016-05-02 11:47:42 +02:00
Arnaud Charlet
7cc9a6a92d Minor reformatting.
From-SVN: r235724
2016-05-02 11:45:17 +02:00
Ed Schonberg
c4405dfe1d sem_util.adb (Normalize_Actuals): Take into account extra actuals that may have been introduced previously.
2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Normalize_Actuals): Take into account extra
	actuals that may have been introduced previously. Normally extra
	actuals are introduced when a call is expanded, but a validity
	check may copy and reanalyze a call that carries an extra actual
	(e.g. an accessibility parameter) before the call itself is
	marked Analzyed, and the analysis of the copy has to be able to
	cope with the added actual.

From-SVN: r235723
2016-05-02 11:44:54 +02:00
Richard Sandiford
05ff4c5fa7 Simplify cst_and_fits_in_hwi
While looking at the use of cst_and_fits_in_hwi in tree-ssa-loop-ivopts.c,
I had difficulty working out what the function actually tests.  The
final NUNITS check seems redundant, since it asks about the number of
HWIs in the _unextended_ constant.  We've already checked that the
unextended constant has no more than HOST_BITS_PER_WIDE_INT bits, so the
length must be 1.

I think this was my fault, sorry.

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
	* tree.c (cst_and_fits_in_hwi): Simplify.

From-SVN: r235722
2016-05-02 09:40:32 +00:00
Richard Sandiford
697e0b28cc Add a wi::to_wide helper function
As Richard says, we ought to have a convenient way of converting
an INTEGER_CST to a wide_int of a particular precision without
having to extract the sign of the INTEGER_CST's type each time.
This patch adds a wi::to_wide helper for that, alongside the
existing wi::to_offset and wi::to_widest.

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
	* tree.h (wi::to_wide): New function.
	* expr.c (expand_expr_real_1): Use wi::to_wide.
	* fold-const.c (int_const_binop_1): Likewise.
	(extract_muldiv_1): Likewise.

gcc/c-family/
	* c-common.c (shorten_compare): Use wi::to_wide.

From-SVN: r235721
2016-05-02 09:40:09 +00:00
Richard Sandiford
8de73453a4 Support << and >> for offset_int and widest_int
Following on from the comparison patch, I think it makes sense to
support << and >> for offset_int (int128_t) and widest_int (intNNN_t),
with >> being arithmetic shift.  It doesn't make sense to use
logical right shift on a potentially negative offset_int, since
the precision of 128 bits has no meaning on the target.

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
	* wide-int.h: Update offset_int and widest_int documentation.
	(WI_SIGNED_SHIFT_RESULT): New macro.
	(wi::binary_shift): Define signed_shift_result_type for
	shifts on offset_int- and widest_int-like types.
	(generic_wide_int): Support <<= and >>= if << and >> are supported.
	* tree.h (int_bit_position): Use shift operators instead of wi::
	 shifts.
	* alias.c (adjust_offset_for_component_ref): Likewise.
	* expr.c (get_inner_reference): Likewise.
	* fold-const.c (fold_comparison): Likewise.
	* gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
	* gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
	* tree-dfa.c (get_ref_base_and_extent): Likewise.
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
	(stmt_kills_ref_p): Likewise.
	* tree-ssa-ccp.c (bit_value_binop_1): Likewise.
	* tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
	(ao_ref_init_from_vn_reference): Likewise.

gcc/cp/
	* init.c (build_new_1): Use shift operators instead of wi:: shifts.

From-SVN: r235720
2016-05-02 09:39:38 +00:00
Richard Sandiford
032c80e999 Support <, <=, > and >= for offset_int and widest_int
offset_int and widest_int are supposed to be at least one bit wider
than all the values they need to represent, with the extra bits
being signs.  Thus offset_int is effectively int128_t and widest_int
is effectively intNNN_t, for target-dependent NNN.

Because the types are signed, there's not really any need to specify
a sign for operations like comparison.  I think things would be clearer
if we supported <, <=, > and >= for them (but not for wide_int, which
doesn't have a sign).

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
	* wide-int.h: Update offset_int and widest_int documentation.
	(WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
	(wi::binary_traits): Allow ordered comparisons between offset_int and
	offset_int, between widest_int and widest_int, and between either
	of these types and basic C types.
	(operator <, <=, >, >=): Define for the same combinations.
	* tree.h (tree_int_cst_lt): Use comparison operators instead
	of wi:: comparisons.
	(tree_int_cst_le): Likewise.
	* gimple-fold.c (fold_array_ctor_reference): Likewise.
	(fold_nonarray_ctor_reference): Likewise.
	* gimple-ssa-strength-reduction.c (record_increment): Likewise.
	* tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
	* tree-sra.c (completely_scalarize): Likewise.
	* tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
	* tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
	* tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
	(check_for_binary_op_overflow): Likewise.
	(search_for_addr_array): Likewise.
	* ubsan.c (ubsan_expand_objsize_ifn): Likewise.

From-SVN: r235719
2016-05-02 09:39:09 +00:00
Claudiu Zissulescu
cd1e4d417a Fix warnings, update source code.
include/
2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
	(arc_save_restore): Likewise.
	(arc_dwarf_register_span): Likewise.
	(arc_output_pic_addr_const): Initialize suffix variable.

From-SVN: r235718
2016-05-02 11:37:17 +02:00