2014-06-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/61437
	Revert
	2014-06-04  Richard Biener  <rguenther@suse.de>

	* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
	TREE_PUBLIC and DECL_EXTERNAL decls.

	* gcc.dg/torture/20140610-1.c: New testcase.
	* gcc.dg/torture/20140610-2.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211436 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa-visibility.c (function_and_variable_visibility): Disable
	virtual table rewriting temporarily on targets not supporting
	ONE_ONLY.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211437 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* tree-vect-data-refs.c (vect_grouped_store_supported): New
	check for stores group of length 3.
	(vect_permute_store_chain): New permutations for stores group of
	length 3.
	* tree-vect-stmts.c (vect_model_store_cost): Change cost
	of vec_perm_shuffle for the new permutations.

gcc/testsuite/
	PR tree-optimization/52252
	* gcc.dg/vect/pr52252-st.c: Test on stores group of size 3.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211439 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Implement CRC32 ACLE intrinsics.

	* config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
	* Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
	dependencies.
	* config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
	(aarch64_crc_builtin_datum): New struct.
	(aarch64_crc_builtin_data): New.
	(aarch64_init_crc32_builtins): New function.
	(aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
	(aarch64_crc32_expand_builtin): New.
	(aarch64_expand_builtin): Add CRC32 builtin expansion case.
	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_FEATURE_CRC32 when appropriate.
	(TARGET_CRC32): Define.
	* config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
	UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
	UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
	(aarch64_<crc_variant>): New pattern.
	* config/aarch64/arm_acle.h: New file.
	* config/aarch64/iterators.md (CRC): New int iterator.
	(crc_variant, crc_mode): New int attributes.
	* doc/aarch64-acle-intrinsics.texi: New file.
	* doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
	Include aarch64-acle-intrinsics.texi.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211440 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add CRC32 ACLE intrinsics testsuite.

	* gcc.target/aarch64/acle/acle.exp: New.
	* gcc.target/aarch64/acle/crc32b.c: New test.
	* gcc.target/aarch64/acle/crc32cb.c: Likewise.
	* gcc.target/aarch64/acle/crc32cd.c: Likewise.
	* gcc.target/aarch64/acle/crc32ch.c: Likewise.
	* gcc.target/aarch64/acle/crc32cw.c: Likewise.
	* gcc.target/aarch64/acle/crc32d.c: Likewise.
	* gcc.target/aarch64/acle/crc32h.c: Likewise.
	* gcc.target/aarch64/acle/crc32w.c: Likewise.
--This line,gand those below, will be ignored--

A    gcc/testsuite/gcc.target/aarch64/acle
A    gcc/testsuite/gcc.target/aarch64/acle/acle.exp
A    gcc/testsuite/gcc.target/aarch64/acle/crc32b.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32d.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32cb.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32cd.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32w.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32h.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32cw.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32ch.c
M    gcc/testsuite/ChangeLog


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211441 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
	(*thumb1_addsi3): Ditto.
	(*thumb_subdi3): Ditto.
	(thumb1_subsi3_insn): Ditto.
	(*thumb_mulsi3): Ditto.
	(*thumb_mulsi3_v6): Ditto.
	(*thumb1_andsi3_insn): Ditto.
	(thumb1_bicsi3): Ditto.
	(*thumb1_iorsi3_insn): Ditto.
	(*thumb1_xorsi3_insn): Ditto.
	(*thumb1_ashlsi3): Ditto.
	(*thumb1_ashrsi3): Ditto.
	(*thumb1_lshrsi3): Ditto.
	(*thumb1_rotrsi3): Ditto.
	(*thumb1_negdi2): Ditto.
	(*thumb1_negsi2): Ditto.
	(*thumb1_abssi2): Ditto.
	(*thumb1_neg_abssi2): Ditto.
	(*thumb1_one_cmplsi2): Ditto.
	(*thumb1_zero_extendhisi2): Ditto.
	(*thumb1_zero_extendqisi2): Ditto.
	(*thumb1_zero_extendqisi2_v6): Ditto.
	(thumb1_extendhisi2): Ditto.
	(thumb1_extendqisi2): Ditto.
	(*thumb1_movdi_insn): Ditto.
	(*thumb1_movsi_insn): Ditto.
	(*thumb1_movhi_insn): Ditto.
	(thumb_movhi_clobber): Ditto.
	(*thumb1_movqi_insn): Ditto.
	(*thumb1_movhf): Ditto.
	(*thumb1_movsf_insn): Ditto.
	(*thumb_movdf_insn): Ditto.
	(movmem12b): Ditto.
	(movmem8b): Ditto.
	(cbranchqi4): Ditto.
	(cbranchsi4_insn): Ditto.
	(cbranchsi4_scratch): Ditto.
	(*negated_cbranchsi4): Ditto.
	(*tbit_cbranch): Ditto.
	(*tlobits_cbranch): Ditto.
	(*tstsi3_cbranch): Ditto.
	(*cbranchne_decr1): Ditto.
	(*addsi3_cbranch): Ditto.
	(*addsi3_cbranch_scratch): Ditto.
	(*thumb_cmpdi_zero): Ditto.
	(cstoresi_eq0_thumb1): Ditto.
	(cstoresi_ne0_thumb1): Ditto.
	(*cstoresi_eq0_thumb1_insn): Ditto.
	(*cstoresi_ne0_thumb1_insn): Ditto.
	(cstoresi_nltu_thumb1): Ditto.
	(cstoresi_ltu_thumb1): Ditto.
	(thumb1_addsi3_addgeu): Ditto.
	(*thumb_jump): Ditto.
	(*call_reg_thumb1_v5): Ditto.
	(*call_reg_thumb1): Ditto.
	(*call_value_reg_thumb1_v5): Ditto.
	(*call_value_reg_thumb1): Ditto.
	(*call_insn): Ditto.
	(*call_value_insn): Ditto.
	(thumb1_casesi_internal_pic): Ditto.
	(thumb1_casesi_dispatch): Ditto.
	(*thumb1_indirect_jump): Ditto.
	(prologue_thumb1_interwork): Ditto.
	(*epilogue_insns): Ditto.
	(consttable_1): Ditto.
	(consttable_2): Ditto.
	(tablejump): Ditto.
	(*thumb1_tablejump): Ditto.
	(thumb_eh_return): Ditto.
	(define_peephole2): Two of them are thumb1 only and got moved into
	new file thumb1.md.
	(define_split): Six of them are thumb1 only and got moved into new
	file thumb1.md.
	* config/arm/thumb1.md: New file comprised of above thumb1 only
	patterns.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211443 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/61306
    * tree-ssa-math-opts.c (struct symbolic_number): Store type of
    expression instead of its size.
    (do_shift_rotate): Adapt to change in struct symbolic_number. Return
    false to prevent optimization when the result is unpredictable due to
    arithmetic right shift of signed type with highest byte is set.
    (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
    (init_symbolic_number): Likewise.
    (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
    when the result is unpredictable due to sign extension.

    gcc/testsuite/
    * gcc.c-torture/execute/pr61306-1.c: New test.
    * gcc.c-torture/execute/pr61306-2.c: Likewise.
    * gcc.c-torture/execute/pr61306-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211444 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/34049
	* g++.dg/parse/pr34049.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211445 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb: Minor typo fix.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Check_References): Do not emit spurious warnings
	on uninitialzed variable of a formal private type if variable
	is not read.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211446 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Geert Bosch  <bosch@adacore.com>

	* s-exctab.adb: avoid race conditions in exception registration.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* errout.adb (Warn_Insertion): New function.
	(Error_Msg): Use Warn_Insertion and Prescan_Message.
	(Error_Msg_Internal): Set Info field of error object.
	(Error_Msg_NEL): Use Prescan_Message.
	(Set_Msg_Text): Don't store info: at start of message.
	(Skip_Msg_Insertion_Warning): New name for Set_Msg_Insertion_Warning.
	(Skip_Msg_Insertion_Warning): Now just skips warning insertion.
	* errout.ads: Document new ?$? and >$> insertion sequences
	Document use of "(style)" and "info: "
	* erroutc.adb (dmsg): Print several missing fields
	(Get_Warning_Tag): Handle -gnatel case (?$?)  (Output_Msg_Text):
	Deal with new tagging of info messages
	* erroutc.ads: Is_Info_Msg: New global (Error_Msg_Object):
	Add field Info (Prescan_Message): New procedure, this procedure
	replaces the old Test_Style_Warning_Serious_Unconditional_Msg
	* errutil.adb, exp_util.adb, par-ch7.adb, sem_ch13.adb, sem_ch7.adb,
	sem_elab.adb: Follow new rules for info message (info belongs
	only at the start of a message, and only in the first message,
	not in any of the continuations).
	* gnat_ugn.texi: Document full set of warning tags.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211447 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Add debug flag -gnatd.q.
	* erroutc.adb (Prescan_Message): Bomb if untagged warning with
	-gnatd.q set.
	* styleg.adb (Check_Xtra_Parens): Message should be a style
	message.
	* sem_aggr.adb, sem_ch3.adb, exp_ch9.adb, checks.adb, sem_prag.adb,
	par-endh.adb, eval_fat.adb, freeze.adb, sem_util.adb, sem_attr.adb,
	sem_elab.adb, sem_ch6.adb, sem_warn.adb, sem_cat.adb,
	sem_ch13.adb, lib-xref.adb: Add remaining warning tags.

2014-06-11  Ben Brosgol  <brosgol@adacore.com>

	* gnat_rm.texi: Revised chapter on Implementation Defined
	Characteristics.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211448 138bc75d-0d04-0410-961f-82ee72b054a4
Delete temporary string within demangler even in failure cases.

A call to demangle_template might allocate storage within a temporary
string even if the call to demangle_template eventually returns
failure.

This will never cause the demangler to crash, but does leak memory, as
a result I've not added any tests for this.

Calling string_delete is safe, even if nothing is allocated into the
string, the string is initialised with string_init, so we know the
internal pointers are NULL.

libiberty/ChangeLog

	* cplus-dem.c (do_type): Call string_delete even if the call to
	demangle_template fails.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211449 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61452
	* tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
	expr and has_constants in case we found a leader.
	(simplify_binary_expression): Always valueize operands first.
	(simplify_unary_expression): Likewise.

	* gcc.dg/torture/pr61452.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211450 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Richard Biener  <rguenther@suse.de>

	* asan/asan_linux.cc: Cherry pick upstream r210012.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211453 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Yannick Moy  <moy@adacore.com>

	* einfo.ads: Minor typo in comment

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads, sinfo.adb: New attribute Uninitialized_Variable, for
	formal private types and private type extensions, to indicate
	variable in a generic unit whose uninitialized use suggest that
	actual type should be fully initialized.
	Needs_Initialized_Actual:  removed, functionaity replaced by
	the above.
	* lib-xref.adb (Generate_Reference): Generate a reference for
	variables of a formal type when the unit is not the main unit,
	to enable appropriate warnings in an instance.
	* sem_ch12.adb (Check_Ininialized_Type): Improve warning on use
	of variable in a generic unit that suggests that actual type
	should be full initialized.
	* sem_warn.adb; (May_Need_Initialized_Actual): Make into procedure
	and do not emot warning, which now only appears in an instance.

2014-06-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Fix minor typo.

2014-06-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb Add with and use clause for Sem_Ch10.
	(Analyze_Declarations): Code reformatting. Analyze the contract
	of a subprogram body stub at the end of the declarative region.
	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Spec_Id is
	now a variable. Do not process the body if its contract is not
	available. Account for subprogram body stubs when extracting
	the corresponding spec.
	* sem_ch6.ads (Analyze_Subprogram_Contract): Update the comment
	on usage.
	* sem_ch10.ads, sem_ch10.adb (Analyze_Subprogram_Body_Stub_Contract):
	New routine.
	* sem_prag.adb (Analyze_Depends_In_Decl_Part):
	Account for subprogram body stubs when extracting the
	corresponding spec.
	(Analyze_Global_In_Decl_List):
	Account for subprogram body stubs when extracting the
	corresponding spec.
	(Analyze_Refined_Depends_In_Decl_Part):
	Use Find_Related_Subprogram_Or_Body to retrieve the declaration
	of the related body. Spec_Is now a variable. Account for
	subprogram body stubs when extracting the corresponding spec.
	(Analyze_Refined_Global_In_Decl_Part): Use
	Find_Related_Subprogram_Or_Body to retrieve the declaration
	of the related body. Spec_Is now a variable. Account for
	subprogram body stubs when extracting the corresponding spec.
	(Collect_Subprogram_Inputs_Output): Account for subprogram body
	stubs when extracting the corresponding spec.

2014-06-11  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Process_Link): Do not invoke gnatlink with
	-lgnarl or -lgnat.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211454 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Sergey Rybin  <rybin@adacore.com frybin>

	* gnat_ugn.texi, vms_data.ads: add description of gnatstub -W<par>
	option to specify the result file encoding.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* errout.ads, sem_ch12.adb: Minor reformatting.
	* debug.adb, erroutc.adb: Remove -gnatd.q debug switch.
	* lib-xref.adb: Minor reformatting.
	* restrict.adb: Minor code reorganization (put routines in
	alpha order).



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211455 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not attempt
	analysis if error has been posted on subprogram body.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality
	rule given in RM 13.1 (8/1) for operational attributes to stream
	attributes: the attribute must apply to a first subtype. Fixes
	missing errors in ACATS test bdd2004.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb (Build_Record_Init_Proc): Don't build for variant
	record type if restriction No_Implicit_Conditionals is active.
	(Expand_N_Object_Declaration): Don't allow default initialization
	for variant record type if restriction No_Implicit_Condition is active.
	(Build_Variant_Record_Equality): Don't build for variant
	record type if restriction No_Implicit_Conditionals is active.
	* exp_ch4.adb (Expand_N_Op_Eq): Error if variant records with
	No_Implicit_Conditionals.
	* sem_aux.ads, sem_aux.adb (Has_Variant_Part): New function.

2014-06-11  Ramon Fernandez  <fernandez@adacore.com>

	* i-cstrin.ads: Update comments.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Selected_Component): Handle properly a
	selected component whose prefix is overloaded, when none of the
	interpretations matches the expected type.

2014-06-11  Bob Duff  <duff@adacore.com>

	* make.adb (Wait_For_Available_Slot): Give a more
	informative error message; if the ALI file is not found, print
	the full path of what it's looking for.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211456 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* make.adb, sem_res.adb: Minor reformatting.

2014-06-11  Thomas Quinot  <quinot@adacore.com>

	* a-astaco.ads, a-tags.ads, s-excdeb.ads, a-tgdico.ads, a-stmaco.ads,
	a-except-2005.ads, s-except.ads, a-taside.ads, a-dynpri.ads,
	a-chahan.ads, a-sytaco.ads, s-stalib.ads, a-strmap.ads: Change pragmas
	Preelaborate_05 to just Preelaborate in runtime units, and similarly
	change Pure_05 to just Pure.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211457 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document System.Unsigned_Types.
	* impunit.adb: System.Unsigned_Types (s-unstyp.ads) is user accessible.
	* s-unstyp.ads: Update comments (this is now user available unit).



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211458 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi, switch-c.adb, sem_prag.adb, a-tgdico.ads, par-prag.adb,
	opt.ads, a-finali.ads, snames.ads-tmpl: Remove all traces of
	pragma/aspects Pure_05 Pure_12 Preelaborate_05.
	* errout.adb (Output_Messages): Avoid duplicate output for
	library level instance.
	* sem_elab.adb (Is_Call_Of_Generic_Formal): Moved to outer level
	(Check_Elab_Call): Add call to Is_Call_Of_Generic_Formal
	* exp_ch4.adb (Expand_N_Op_Expon): New interface for Exp_Modular.
	* s-expmod.ads, s-expmod.adb (Exp_Modular): Change interface to
	accomodate largest modulus value.
	* gnat_ugn.texi: Minor updates.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Instantiate_Package_Body): Do not attempt to
	load body of generic package or its parent, if body is optional
	and the unit does not require a body.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211459 138bc75d-0d04-0410-961f-82ee72b054a4