Commit Graph

141525 Commits

Author SHA1 Message Date
Hristian Kirtchev 6e84098973 exp_ch7.adb (Process_Transient_Objects): Reimplement to properly handle restriction No_Exception_Propagation.
2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Process_Transient_Objects): Reimplement to properly
	handle restriction No_Exception_Propagation.
	* exp_ch11.adb (Expand_At_End_Handler): Update the parameter
	profile and all references to Block.
	* exp_ch11.ads (Expand_At_End_Handler): Update the parameter
	profile and comment on usage.
	* exp_intr.adb (Expand_Unc_Deallocation): Reimplement to properly
	handle restriction No_Exception_Propagation.
	* gnat1drv.adb, restrict.adb: Update comment.

From-SVN: r229227
2015-10-23 12:43:30 +02:00
Bob Duff c79f6efda3 exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call SS_Release for a block statement enclosing the return statement in...
2015-10-23  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call
	SS_Release for a block statement enclosing the return statement in the
	case where a build-in-place function return is returning
	the result on the secondary stack. This is accomplished by
	setting the Sec_Stack_Needed_For_Return flag on such blocks.
	It was already being set for the function itself, and it was
	already set correctly for blocks in the non-build-in-place case
	(in Expand_Simple_Function_Return).
	(Set_Enclosing_Sec_Stack_Return): New procedure to perform
	the Set_Sec_Stack_Needed_For_Return calls. Called in the
	build-in-place and non-build-in-place cases.
	(Expand_Simple_Function_Return): Call
	Set_Enclosing_Sec_Stack_Return instead of performing the loop
	in line.

2015-10-23  Bob Duff  <duff@adacore.com>

	* scng.adb (Char_Literal_Case): If an apostrophe
	follows a reserved word, treat it as a lone apostrophe, rather
	than the start of a character literal. This was already done for
	"all", but it needs to be done also for (e.g.) "Delta".

From-SVN: r229226
2015-10-23 12:41:13 +02:00
Richard Biener 1015831766 fold-const.c (fold_binary_loc): Move Fold (A & ~B) - (A & B) into (A ^ B) - B to match.pd Move (X & ~Y) | (~X &...
2015-10-23  Richard Biener  <rguenther@suse.de>
	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
	into (A ^ B) - B to match.pd
	Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.

	* match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
	New simplifier.
	(minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
	New simplifier.
	(minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
	New simplifier.
	(bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
	New simplifier.
	(bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0) 
	INTEGER_CST@1)): New simplifier.


Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>

From-SVN: r229225
2015-10-23 10:30:49 +00:00
Arnaud Charlet 95fef24ff9 [multiple changes]
2015-10-23  Bob Duff  <duff@adacore.com>

	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Use
	Underlying_Type for B_Typ, in case the Typ is a subtype of a type with
	unknown discriminants.
	* g-awk.ads: Minor style fix in comment

2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* debug.adb: Document the use of debug switch -gnatd.5.
	* einfo.adb: Code reformatting.	(Is_Ghost_Entity): Moved from ghost.adb.
	* einfo.ads New synthesized attribute Is_Ghost_Enity along
	with usage in nodes and pragma Inline.
	(Is_Ghost_Entity: Moved from ghost.ads.
	* exp_ch3.adb Code reformatting.
	(Expand_Freeze_Array_Type): Capture, set and restore the Ghost mode.
	(Expand_Freeze_Class_Wide_Type): Capture, set and restore the
	Ghost mode.
	(Expand_Freeze_Enumeration_Type): Capture, set and
	restore the Ghost mode.
	(Expand_Freeze_Record_Type): Capture, set and restore the Ghost mode.
	* exp_ch6.adb (Expand_Subprogram_Contract): Do not expand the
	contract of an ignored Ghost subprogram.
	* exp_ch13.adb Add with and use clauses for Ghost.
	(Expand_N_Freeze_Entity): Capture, set and restore the Ghost mode.
	* exp_dbug.adb (Get_External_Name): Code reformatting. Add a
	special prefix for ignored Ghost entities or when requested by
	-gnatd.5 for any Ghost entity.
	* exp_dbug.ads Document the use of prefix "_ghost_" for ignored
	Ghost entities.
	* exp_prag.adb (Expand_Pragma_Check): Capture, set and restore the
	Ghost mode.
	(Expand_Pragma_Loop_Variant): Use In_Assertion_Expr
	to signal the original context.
	* ghost.adb (Check_Ghost_Overriding): Code cleanup.
	(Is_Ghost_Entity): Moved to einfo.adb.	(Is_OK_Declaration):
	Move the assertion expression check to the outer level.
	(Is_OK_Ghost_Context): An assertion expression is a valid Ghost
	context.
	* ghost.ads (Is_Ghost_Entity): Moved to einfo.ads.
	* sem_ch3.adb (Analyze_Object_Contract): A source Ghost object
	cannot be imported or exported. Mark internally generated objects
	as Ghost when applicable.
	(Make_Class_Wide_Type): Inherit the ghostness of the root tagged type.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark
	a stand alone subprogram body as Ghost when applicable.
	(Analyze_Subprogram_Declaration): Mark internally generated
	subprograms as Ghost when applicable.
	* sem_ch7.adb: Code cleanup.
	* sem_ch13.adb (Add_Invariants): Add various formal
	parameters to break dependency on global variables.
	(Build_Invariant_Procedure): Code cleanup. Capture, set and
	restore the Ghost mode.
	* sem_res.adb (Resolve_Actuals): The actual parameter of a source
	Ghost subprogram whose formal is of mode IN OUT or OUT must be
	a Ghost variable.

2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch8.adb Code cleanup.
	(Find_Expanded_Name): Replace
	the call to In_Pragmas_Depends_Or_Global with a call to
	In_Abstract_View_Pragma.
	(In_Abstract_View_Pragma): New routine.
	(In_Pragmas_Depends_Or_Global): Removed.
	* sem_prag.adb (Analyze_Part_Of): Catch a case where indicator
	Part_Of denotes the abstract view of a variable.

From-SVN: r229224
2015-10-23 12:29:50 +02:00
Arnaud Charlet 2e88509395 sem_util.ads (Unique_Defining_Entity): Document the result for tasks and entries.
2015-10-23  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.ads (Unique_Defining_Entity): Document the result
	for tasks and entries.
	* sem_util.adb (Unique_Entity): Return declaration entity for task and
	entry bodies

From-SVN: r229222
2015-10-23 12:25:57 +02:00
Richard Sandiford 67dbe5829e Move fold_trunc_transparent_mathfn to match.pd
This moves the fold rules for trunc, floor, ceil, round, nearbyint and
rint in one go, since they're tested as a group.  Most of the code is
supporting the f(x)->x fold when x is known to be integer-valued.
Like with the non-negative test, this is probably more elegantly handled
by tracking range information for reals, but until that happens, I think
we should handle it analogously to tree_expr_nonnegative_p.

I've incorporated the fix for PR68031 in the new version of
integer_valued_real_p.  However, it seemed confusing to test for an
SSA name at the head of the function rather than the case statement,
and not fall through to tree_simple_nonnegative_warnv_p (which
conceptually shouldn't care whether an update is in progress).
But tree_simple_nonnegative_warnv_p is a no-op for SSA names,
so I simply changed it to:

          return (!name_registered_for_update_p (t)
	      && depth < PARAM_VALUE (PARAM_MAX_SSA_NAME_QUERY_DEPTH)
	      && gimple_stmt_nonnegative_warnv_p (SSA_NAME_DEF_STMT (t),
						  strict_overflow_p, depth));

and used that in the new code too.

Doing these folds later meant that IPA would start to use information
about the aborting sinf and floor in 20030125-1.c before the folds
kicked in.  I changed them from noinline to weak to stop that.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
	* builtins.c (integer_valued_real_p): Move to fold-const.c.
	(fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
	(fold_builtin_ceil, fold_builtin_round): Delete.
	(fold_builtin_1): Handle constant trunc, floor, ceil and round
	arguments here.
	* convert.c (convert_to_real): Remove narrowing of rounding
	functions.
	* fold-const.h (integer_valued_real_unary_p)
	(integer_valued_real_binary_p, integer_valued_real_call_p)
	(integer_valued_real_single_p, integer_valued_real_p): Declare.
	* fold-const.c (tree_single_nonnegative_warnv_p): Move
	name_registered_for_update_p check to SSA_NAME case statement.
	Don't call tree_simple_nonnegative_warnv_p for SSA names.
	(integer_valued_real_unary_p, integer_valued_real_binary_p)
	(integer_valued_real_call_p, integer_valued_real_single_p)
	(integer_valued_real_invalid_p): New functions.
	(integer_valued_real_p): Move from fold-const.c and rework
	to call the functions above.  Handle SSA names.
	* gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
	* gimple-fold.c (gimple_assign_integer_valued_real_p)
	(gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
	(gimple_stmt_integer_valued_real_p): New functions.
	* match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
	Fold f(x)->x for the same f if x is known to be integer-valued.
	Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
	the result.  Canonicalize floor(x) as trunc(x) if x is
	nonnegative.

gcc/testsuite/
	* gcc.c-torture/execute/20030125-1.c (floor, floorf, sin, sinf):
	Make weak rather than noinline.
	* gcc.dg/builtins-57.c: Compile with -O.
	* gcc.dg/torture/builtin-integral-1.c: Skip for -O0.

From-SVN: r229221
2015-10-23 10:01:47 +00:00
Paulo Matos 735a559c68 MAINTAINERS: Update email address.
2015-10-23  Paulo Matos  <pmatos@linki.tools>

        * MAINTAINERS: Update email address.

From-SVN: r229220
2015-10-23 11:51:32 +02:00
Tom de Vries 0becf3548d Use make_constraint_from in intra_create_variable_infos
2015-10-23  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Use
	make_constraint_from.

From-SVN: r229219
2015-10-23 09:38:45 +00:00
Tom de Vries 498dbe0a13 Add missing is_full_var setting in create_variable_info_for_1
2015-10-23  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (create_variable_info_for_1): Add missing
	setting of is_full_var in case of a single field.

From-SVN: r229218
2015-10-23 09:38:36 +00:00
Tom de Vries 74093af2ca Run tree-ssa/restrict-4.c without fipa-icf
2015-10-23  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/tree-ssa/restrict-4.c: Add -fno-ipa-icf to dg-options.

From-SVN: r229217
2015-10-23 09:38:26 +00:00
Alan Hayward 15713b43da MAINTAINERS (Write After Approval): Add myself.
2015-10-23  Alan Hayward <alan.hayward@arm.com>

	* MAINTAINERS  (Write After Approval): Add myself.

From-SVN: r229216
2015-10-23 09:05:49 +00:00
Maxim Ostapenko 02f4d3e9da Update HOWTO_MERGE file for libsanitizer.
From-SVN: r229215
2015-10-23 11:50:30 +03:00
Nick Clifton 956dd14e45 Fix typo.
From-SVN: r229213
2015-10-23 07:39:32 +00:00
Max Ostapenko 9f468f0772 Fix ASan output pattern tests on Darwin.
gcc/testsuite/

	PR sanitizer/68042
	* c-c++-common/asan/memcmp-1.c: Adjust test to pass on Darwin.
	* c-c++-common/asan/sanity-check-pure-c-1.c: Likewise.

From-SVN: r229212
2015-10-23 10:22:37 +03:00
Jason Merrill 8ae06525e8 typo
From-SVN: r229211
2015-10-22 20:52:46 -04:00
Jason Merrill ba2b189e84 call.c (add_template_conv_candidate): Pass DEDUCE_CALL.
* call.c (add_template_conv_candidate): Pass DEDUCE_CALL.
	(add_template_candidate_real): Handle it.
	(fn_type_unification): Handle it.

From-SVN: r229210
2015-10-22 20:51:14 -04:00
Jason Merrill d4db506069 call.c (add_conv_candidate): Remove first_arg parm.
* call.c (add_conv_candidate): Remove first_arg parm.
	(add_template_conv_candidate): Likewise.
	(add_template_candidate_real): Don't pass it.
	(build_op_call_1): Likewise.

From-SVN: r229209
2015-10-22 20:51:07 -04:00
GCC Administrator cfed192433 Daily bump.
From-SVN: r229208
2015-10-23 00:16:14 +00:00
Martin Sebor ffbd5e09b7 re PR driver/68043 (many undocumented options, missing punctuation)
gcc/ChangeLog:

2015-10-22  Martin Sebor  <msebor@redhat.com>

	PR driver/68043
	* config/i386/i386.opt: Add missing periods to the ends of sentences.
	* config/msp430/msp430.opt: Same.

gcc/testsuite/ChangeLog:

2015-10-22  Martin Sebor  <msebor@redhat.com>

	PR driver/68043
	* gcc.misc-tests/help.exp: Verify that option descriptions
	end in periods.
	* lib/options.exp (check_for_options): Use the regexp --line option.
	Print unexpected match on failure.

From-SVN: r229205
2015-10-22 17:48:17 -06:00
Uros Bizjak efee9dc486 pr67985-3.c (dg-options): Add -mfpmath=sse.
* gcc.target/i386/pr67985-3.c (dg-options): Add -mfpmath=sse.

From-SVN: r229199
2015-10-22 23:37:06 +02:00
Martin Sebor b1726d6c26 Fix up ChangeLog for rev. 229155.
From-SVN: r229195
2015-10-22 14:57:00 -06:00
David Wohlferd aba77695fb Proposed doc update for Explicit Reg Vars 3/3
* doc/extend.exp (Global Register Variables): Rewrite.

From-SVN: r229188
2015-10-22 14:11:29 -06:00
Mikhail Maltsev 9abe8b7443 [PATCH 3/9] ENABLE_CHECKING refactoring: Java and Ada
[PATCH 3/9] ENABLE_CHECKING refactoring: Java and Ada
gcc/java/ChangeLog:

2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>

	* decl.c (java_mark_decl_local): Use flag_checking instead of
	ENABLE_CHECKING.

gcc/ada/ChangeLog:

2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Use gcc_checking_assert.
	* gcc-interface/trans.c (assoc_to_constructor): Use flag_checking.
	* gcc-interface/utils.c (relate_alias_sets): Likewise.
	* gcc-interface/utils2.c (build_binary_op, build_unary_op): Use
	gcc_checking_assert

From-SVN: r229185
2015-10-22 13:21:39 -06:00
Jeff Law 71e558ef30 [PATCH] Fix abort in write_eligible_delay
[PATCH] Fix abort in write_eligible_delay
        * genattrtab.c (main): If we do not have any annul-true or annul-false
        slots, then write out a dummy eligible_for_annul_true or
        eligible_for_annul_false as needed.

From-SVN: r229184
2015-10-22 13:18:05 -06:00
Nick Clifton 8d535dab41 msp430.opt: Add -msilicon-errata and -msilicon-errata-warn.
* config/msp430/msp430.opt: Add -msilicon-errata and
	-msilicon-errata-warn.
	* config/msp430/msp430.h (ASM_SPEC): Pass new options on to
	assembler.
	* doc/invoke.texi: Document new options.

From-SVN: r229177
2015-10-22 16:00:38 +00:00
Paolo Carlini 2c34eb7423 re PR c++/67838 (Rejects-valid-code: templated lambda variable.)
2015-10-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67838
	* g++.dg/cpp1y/var-templ46.C: New.

From-SVN: r229175
2015-10-22 14:55:14 +00:00
Nick Clifton 5eec02d0db oops- omitted by accident from the previous delta.
From-SVN: r229174
2015-10-22 14:45:44 +00:00
Richard Biener 975b6ff3d7 re PR tree-optimization/58497 (SLP vectorizes identical operations)
2015-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58497
	* tree-vect-generic.c (ssa_uniform_vector_p): New helper.
	(expand_vector_operations_1): Use it.  Lower operations on
	all uniform vectors to scalar operations if the HW supports it.

	* gcc.dg/tree-ssa/vector-5.c: New testcase.

From-SVN: r229173
2015-10-22 13:36:46 +00:00
Richard Biener 90a7a1b5b2 re PR tree-optimization/19049 (not vectorizing a fortran loop)
2015-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/19049
	PR tree-optimization/65962
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
	to strided accesses if single-element interleaving doesn't work.

	* gcc.dg/vect/vect-strided-store-pr65962.c: New testcase.
	* gcc.dg/vect/vect-63.c: Adjust.
	* gcc.dg/vect/vect-70.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise.
	* gfortran.dg/vect/pr19049.f90: Likewise.
	* gfortran.dg/vect/vect-8.f90: Likewise.

From-SVN: r229172
2015-10-22 13:33:17 +00:00
Richard Biener a51ca2f495 re PR middle-end/68046 (-ftrapv doesn't catch leaq-based overflows on x86-64)
2015-10-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/68046
	PR middle-end/61893
	* optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
	(expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
	(expand_unop): Likewise.

	* gcc.dg/torture/ftrapv-2.c: New testcase.

From-SVN: r229170
2015-10-22 11:44:11 +00:00
Uros Bizjak 08e99efb2e ChangeLog: Fix whitespace.
From-SVN: r229169
2015-10-22 12:16:20 +02:00
Max Ostapenko 692b1131a7 Fix bootstrap on x86_64-apple-darwin14 after r229119.
libsanitizer/

	PR bootstrap/68041
	* configure.ac (link_sanitizer_common): Link against librt only if it
	contains shm_open, required by sanitizers.
	(CXX_ABI_NEEDED): Remove variable.
	* configure: Regenerate.
	* ubsan/Makefile.am (libubsan_la_LIBADD): Do not add -lc++abi anymore.
	* ubsan/Makefile.in: Regenerate.

From-SVN: r229168
2015-10-22 12:47:17 +03:00
Richard Biener a8fc257951 fold-const.c (fold_addr_of_array_ref_difference): Properly convert operands before folding a MINUS_EXPR.
2015-10-22  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_addr_of_array_ref_difference): Properly
	convert operands before folding a MINUS_EXPR.
	(fold_binary_loc): Move simplification of MINUS_EXPR on
	converted POINTER_PLUS_EXPRs ...
	* match.pd: ... here.

	c/
	* c-typeck.c (c_finish_omp_clauses): Properly convert operands
	before folding a MINUS_EXPR.

	cp/
	* semantics.c (cp_finish_omp_clause_depend_sink): Properly convert
	before folding a MINUS_EXPR.
	(finish_omp_clauses): Likewise.

From-SVN: r229167
2015-10-22 08:38:15 +00:00
Richard Sandiford cfed37a03b Move tan simplifications to match.pd
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
	* builtins.c (fold_builtin_tan): Delete.
	(fold_builtin_1): Handle constant tan arguments here.
	* match.pd: Simplify (tan (atan x)) to x.

From-SVN: r229166
2015-10-22 08:32:01 +00:00
Richard Sandiford 92c52eab97 Move more cproj simplifications to match.pd
Also make build_complex_cproj available globally and use
it for the existing match.pd rules.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
	* builtins.c (fold_builtin_cproj): Delete.
	(fold_builtin_1): Handle constant arguments here.
	(build_complex_cproj): Move and rename to...
	* tree.c: (build_complex_inf): ...this.
	* tree.h (build_complex_inf): Declare.
	* match.pd: Fold cproj(x)->x if x has no infinity.
	Use build_complex_inf for existing cproj rules.

From-SVN: r229164
2015-10-22 08:27:04 +00:00
Andreas Krebbel 7477de01a8 S/390: PR68015 Fix ICE in s390_emit_compare
gcc/ChangeLog:

2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/68015
	* config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
	already have a comparison result.

gcc/testsuite/ChangeLog:

2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/68015
	* gcc.target/s390/pr68015.c: New test.

From-SVN: r229163
2015-10-22 08:24:01 +00:00
Andre Vieira 597bb9db4a [PATCH][ARM] Fix for testcase after r228661
This patch addresses PR-67948 by changing the xor-and.c test,
initially written for a simplify-rtx pattern, to make it pass post
r228661 (see
https://gcc.gnu.org/ml/gcc-patches/2015-10/msg00676.html). This test
no longer triggered the simplify-rtx pattern it was written for prior
to r228661, though other optimizations did lead to the same assembly
the test checked for. The optimization added with r228661 matches the
pattern used in the test and optimizes it to a better and still valid
sequence. Being unable to easily change the test to trigger the
original simplify-rtx pattern, I chose to change it to pass with the
new produced assembly sequence.

This is correct because the transformation is valid and it yields a
more efficient pattern. However, as I pointed out before this test
doesn't test the optimization it originally was intended for.

Tested by running regression tests for armv6.

Is this OK to commit?

Thanks, Andre

2015-10-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR testsuite/67948
	* gcc.target/arm/xor-and.c: Adjust test to check for eor
	instead of orr.

From-SVN: r229161
2015-10-22 05:12:32 +00:00
Ramana Radhakrishnan 1be3429587 [Patch AArch64 63304] Fix issue with global state.
Jiong pointed out privately that there was a thinko
in the way in which the global state was being
set and reset. I don't like adding such
global state but ....


2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/63304
        * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
        (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
        (aarch64_classify_address): Likewise.
        (aarch64_secondary_reload): Likewise.
        (aarch64_override_options_after_change_1): Adjust.
        * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
        Use aarch64_nopcrelative_literal_loads.
        (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
        * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): 
	Declare

2015-10-22  Jiong Wang  <jiong.wang@arm.com>
            Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/63304
        * gcc.target/aarch64/pr63304_1.c: New test.

From-SVN: r229160
2015-10-22 04:26:50 +00:00
GCC Administrator 01f32f32aa Daily bump.
From-SVN: r229159
2015-10-22 00:16:11 +00:00
Paolo Carlini f523e68a23 re PR c++/66781 ("confused by earlier errors, bailing out" with wrong enum within class)
/cp
2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66781
	* parser.c (cp_parser_enum_specifier): Upon error_at set
	nested_name_specifier to error_mark_node; improve error message.

/testsuite
2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66781
	* g++.dg/parse/enum13.C: New.

/cp
2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67847
	* parser.c (cp_parser_enum_specifier): Reject a nested_name_specifier
	which doesn't name a class or namespace.

/testsuite
2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67847
	* g++.dg/parse/enum12.C: New.

From-SVN: r229156
2015-10-21 22:52:45 +00:00
Martin Sebor a7b2e1845f Improve --help output to generate references to option aliases.
gcc/
	PR driver/68043
	* opts.c (undocumented_msg, use_diagnosed_msg): New globals.
	(print_filtered_help): Reference aliased option's name and encourage
	readers to use it in preference to the alias if the former is not
	documented.  Mention when using an option is diagnosed.
	* gcc.c (display_help): End each sentence with a period.

	* ada/gcc-interface/lang.opt: End each sentence that describes
	an option with a period.
	* c-family/c.opt: Same.
	* common.opt: Same.
	* config/aarch64/aarch64.opt: Same.
	* config/alpha/alpha.opt: Same.
	* config/arc/arc.opt: Same.
	* config/arm/arm.opt: Same.
	* config/avr/avr.opt: Same.
	* config/bfin/bfin.opt: Same.
	* config/c6x/c6x.opt: Same.
	* config/cr16/cr16.opt: Same.
	* config/cris/cris.opt: Same.
	* config/cris/linux.opt: Same.
	* config/darwin.opt: Same.
	* config/epiphany/epiphany.opt: Same.
	* config/fr30/fr30.opt: Same.
	* config/frv/frv.opt: Same.
	* config/ft32/ft32.opt: Same.
	* config/g.opt: Same.
	* config/h8300/h8300.opt: Same.
	* config/i386/cygming.opt: Same.
	* config/i386/djgpp.opt: Same.
	* config/i386/i386.opt: Same.
	* config/i386/interix.opt: Same.
	* config/i386/mingw-w64.opt: Same.
	* config/i386/mingw.opt: Same.
	* config/ia64/ia64.opt: Same.
	* config/ia64/ilp32.opt: Same.
	* config/iq2000/iq2000.opt: Same.
	* config/linux.opt: Same.
	* config/lm32/lm32.opt: Same.
	* config/lynx.opt: Same.
	* config/m32c/m32c.opt: Same.
	* config/m32r/m32r.opt: Same.
	* config/m68k/ieee.opt: Same.
	* config/m68k/m68k.opt: Same.
	* config/mcore/mcore.opt: Same.
	* config/mep/mep.opt: Same.
	* config/microblaze/microblaze.opt: Same.
	* config/mips/mips.opt: Same.
	* config/mmix/mmix.opt: Same.
	* config/mn10300/mn10300.opt: Same.
	* config/moxie/moxie.opt: Same.
	* config/msp430/msp430.opt: Same.
	* config/nios2/elf.opt: Same.
	* config/nios2/nios2.opt: Same.
	* config/nvptx/nvptx.opt: Same.
	* config/pa/pa-hpux.opt: Same.
	* config/pa/pa-hpux1010.opt: Same.
	* config/pa/pa-hpux1111.opt: Same.
	* config/pa/pa-hpux1131.opt: Same.
	* config/pa/pa.opt: Same.
	* config/pa/pa64-hpux.opt: Same.
	* config/pdp11/pdp11.opt: Same.
	* config/rl78/rl78.opt: Same.
	* config/rs6000/476.opt: Same.
	* config/rs6000/aix64.opt: Same.
	* config/rs6000/darwin.opt: Same.
	* config/rs6000/linux64.opt: Same.
	* config/rs6000/rs6000.opt: Same.
	* config/rs6000/sysv4.opt: Same.
	* config/s390/s390.opt: Same.
	* config/s390/tpf.opt: Same.
	* config/sh/sh.opt: Same.
	* config/sol2.opt: Same.
	* config/sparc/long-double-switch.opt: Same.
	* config/sparc/sparc.opt: Same.
	* config/spu/spu.opt: Same.
	* config/stormy16/stormy16.opt: Same.
	* config/tilegx/tilegx.opt: Same.
	* config/tilepro/tilepro.opt: Same.
	* config/v850/v850.opt: Same.
	* config/vax/vax.opt: Same.
	* config/visium/visium.opt: Same.
	* config/vms/vms.opt: Same.
	* config/vxworks.opt: Same.
	* config/xtensa/xtensa.opt: Same.
	* fortran/lang.opt: Same.

testsuite/
	PR driver/68043
	* gcc.misc-tests/help.exp: Adjust.
	* lib/options.exp (check_for_options): Add detail to output.

From-SVN: r229155
2015-10-21 16:24:41 -06:00
Mikhail Maltsev 22d663823a [PATCH 2/9] ENABLE_CHECKING refactoring: libcpp
[PATCH 2/9] ENABLE_CHECKING refactoring: libcpp
        * include/line-map.h: Use CHECKING_P instead of ENABLE_CHECKING.
        * init.c: Likewise.
        * macro.c (struct macro_arg_token_iter, set_arg_token,
        macro_arg_token_iter_init, macro_arg_token_iter_forward,
        macro_arg_token_iter_get_token, macro_arg_token_iter_get_location,
        alloc_expanded_arg_mem, _cpp_backup_tokens): Likewise.

From-SVN: r229154
2015-10-21 16:22:03 -06:00
Steven G. Kargl 44f92b59c2 re PR fortran/67939 (ICE on using data with negative substring range)
2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67939
	* data.c (create_character_initializer): Deal with zero length string.


2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67939
	* gfortran.dg/pr67939.f90: New test.

From-SVN: r229153
2015-10-21 21:40:05 +00:00
Jonathan Wakely f9badf7134 * include/std/type_traits (__cpp_lib_bool_constant): Define.
From-SVN: r229152
2015-10-21 22:20:25 +01:00
Aditya Kumar 78fd2726ca a scalar depending on vdefs in the current region is not invariant
When a scalar is defined in function of an array reference in the current scop,
it does variate.  Graphite cannot represent the condition in scop-11.c, as a[*]
variates in the current region, and it is not an affine condition:

  for (j = 0; j <= 20; j++)
    a[j] = b + i;

  if (a[12] == 23)
    b = 3;
  else
    b = 1;

  for (j = 0; j <= 20; j++)
    a[j] = b + i;

	* graphite-scop-detection.c (parameter_index_in_region): Update call to
	invariant_in_sese_p_rec.
	* graphite-sese-to-poly.c (extract_affine): Same.
	* sese.c (invariant_in_sese_p_rec): Pass in an extra parameter has_vdefs.
	(scalar_evolution_in_region): Return chrec_dont_know when the scalar variable
	depends on virtual definitions in the current region.
	* sese.h (invariant_in_sese_p_rec): Update declaration.

testsuite/
	* gcc.dg/graphite/scop-11.c: Update pattern.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r229151
2015-10-21 21:18:27 +00:00
Aditya Kumar 8b76e7fef8 add an upper limit on the number of array references
* graphite-scop-detection.c (build_scops): Do not handle scops with more
	than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
	* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r229150
2015-10-21 21:18:17 +00:00
Mikhail Maltsev 7ec491c07b [PATCH 1/9] ENABLE_CHECKING refactoring
gcc/
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (CHECKING_P): Define.
	* system.h: Use CHECKING_P.

libcpp/
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (CHECKING_P): Define.
	* system.h (fancy_abort): Declare.
	(abort): Define.
	(gcc_assert): Define. Use CHECKING_P.

From-SVN: r229149
2015-10-21 15:16:31 -06:00
Jan Hubicka 74bb77094f re PR ipa/67056 (Wrong code generated)
PR ipa/67056
	* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
	is negative we don't know the type.
	(check_stmt_for_type_change): Skip constructors of non-polymorphic
	types as those won't help devirutalization.
	* g++.dg/ipa/pr67056.C: New testcase.

From-SVN: r229148
2015-10-21 21:14:06 +00:00
Jan Hubicka 1567db2f02 fold-const.c (operand_equal_p): Add code matching empty constructors.
* fold-const.c (operand_equal_p): Add code matching empty
	constructors.
	* gcc.dg/tree-ssa/operand-equal-1.c: Verify that empty constructors
	are matched.

From-SVN: r229147
2015-10-21 21:12:05 +00:00
Eric Botcazou c26065cc38 tree.def (CEIL_DIV_EXPR, [...]): Tweak comments.
* tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
	comments.
	(TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
	Add comments on sign of the result.
	* fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
	Recurse on operand #1 instead of operand #0.
	<CEIL_MOD_EXPR>: Do not recurse.
	<ROUND_MOD_EXPR>: Likewise.

From-SVN: r229146
2015-10-21 21:10:49 +00:00