Fix pr61848, linux kernel miscompile

This patch cures the linux kernel boot failure when compiled using
trunk gcc.

At its heart, the problem is caused by merge_decls merging from the
old decl to the new decl, then copying back to the old decl and
discarding the new.  When Jan moved some fields to the symtab,
"copying back to the old decl" was lost for those fields.  Really,
it would be best if merge_decls was rewritten to merge everything to
the kept decl, but here I'm just doing that for fields accessed via
decl_with_vis.symtab_node.

2014-10-17  Alan Modra  <amodra@gmail.com>

gcc/c/
	PR middle-end/61848
	* c-decl.c (merge_decls): Don't merge section name or tls model
	to newdecl symtab node, instead merge to olddecl.  Override
	existing olddecl section name.  Set tls_model for all thread-local
	vars, not just OMP thread-private ones.  Remove incorrect comment.
gcc/cp/
	PR middle-end/61848
	* decl.c (merge_decls): Don't merge section name, comdat group or
	tls model to newdecl symtab node, instead merge to olddecl.
	Override existing olddecl section name.  Set tls_model for all
	thread-local vars, not just OMP thread-private ones.  Remove
	incorrect comment.

2014-10-17  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR middle-end/61848
	* g++.dg/torture/pr61848.C: New testcase.
	* gcc.c-torture/compile/pr61848.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216361 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
	register in a special way.
	(__cpuid_count): Ditto.
	* config/i386/driver-i386.h: Protect with
	"#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
	(host_detect_local_cpu): Mention that GCC with non-fixed %ebx
	is required to compile the function.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216362 138bc75d-0d04-0410-961f-82ee72b054a4
	* Add missing ChangeLog entry.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216363 138bc75d-0d04-0410-961f-82ee72b054a4
Handle copy cycles in pass_cprop_hardreg

2014-10-17  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/61605
	* regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
	notice stores for noops.  Don't regard noops as copies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216364 138bc75d-0d04-0410-961f-82ee72b054a4
Use fuse-caller-save info in cprop-hardreg

2014-10-17  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/61605
	* regcprop.c (copyprop_hardreg_forward_1): Use
	regs_invalidated_by_this_call instead of regs_invalidated_by_call.

	* gcc.target/i386/fuse-caller-save.c: Update addition check.  Add movl
	absence check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216365 138bc75d-0d04-0410-961f-82ee72b054a4
Fix misplaced changelog entry

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216366 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-17  Marc Glisse  <marc.glisse@inria.fr>

	* tree-into-ssa.c (is_old_name): Replace "new" with "old".



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

	* lib-writ.ads, s-valdec.ads: Minor reformatting.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb: Additional work on function wrappers.

2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Possible_Bit_Aligned_Component): Also recurse
	on the renamed object of renamings.

2014-10-17  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer
	mode, always use the native target.



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

	* sem_ch12.adb: Refine previous change.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* prj-conf.adb: Revert previous change.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216369 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-17  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation
	of all attributes related to pragma Default_Initial_Condition.
	(Build_Derived_Type): Propagation of all attributes related
	to pragma Default_Initial_Condition.
	(Process_Full_View): Account for the case where the full view derives
	from another private type and propagate the attributes related
	to pragma Default_Initial_Condition to the private view.
	(Propagate_Default_Init_Cond_Attributes): New routine.
	* sem_util.adb: Alphabetize various routines.
	(Build_Default_Init_Cond_Call): Use an unchecked type conversion
	when calling the default initial condition procedure of a private type.
	(Build_Default_Init_Cond_Procedure_Declaration): Prevent
	the generation of multiple default initial condition procedures.



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

	* sem_util.adb: Minor reformatting.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Build_Function_Wrapper): Build wrappers for
	actuals that are defaulted subprograms of the formal subprogram
	declaration.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Eq): Make sure we deal with the
	implementation base type.
	* sinfo.ads: Add a note for N_Op_Eq and N_Op_Ne that record
	operands are always expanded out into component comparisons.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* s-vallli.adb: Minor comment correction.
	* s-valuti.ads: Minor comment reformatting.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document System.Atomic_Counters.
	* impunit.adb: Add System.Atomic_Counters (s-atocou.ads) to the
	list of user- accessible units added as children of System.
	* s-atocou.ads: Update comment.

2014-10-17  Arnaud Charlet  <charlet@adacore.com>

	* s-expmod.ads: Add comments.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216371 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-17  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Propagate_Default_Init_Cond_Attributes): A derived type
	inherits the attributes related to pragma Default_Initial_Condition
	from its parent type.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

	* a-strsea.adb (Index - versions with a From parameter):
	According to AI05-056, the Index functions with a From parameter
	return 0 if the source is an empty string.

2014-10-17  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Disable
	the consistency checks in ASIS mode.

2014-10-17  Arnaud Charlet  <charlet@adacore.com>

	* s-expmod.ads: Minor typo fix.



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

	* sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect
	specfications from original type declaration to declaration of
	implicit base, because original node is rewritten as a subtype
	declaration on which type aspects do not belong.



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

	* sem_ch3.adb, a-strsea.adb: Minor reformatting.
	* par-ch6.adb (P_Subprogram): Fix bad handling of null procedures.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216375 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-17  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Get_Config_Switches): In CodePeer mode, do
	not take into account any compiler command from package IDE.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Build_Function_Wrapper): The formals of the
	wrapper must have the same identifiers as those of the formal
	subprogram, because calls within the generic may use named
	associations.



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

	* sem_ch13.adb (Add_Invariants): For a class-wide type invariant,
	preserve semantic information on the invariant expression
	(typically a function call) because it may be inherited by a
	type extension in a different unit, and it cannot be resolved
	by visibility elsewhere because it may refer to local entities.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document that string literal can be used for
	pragma Warnings when operating in Ada 83 mode.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Find_Aggregate_Component_Desig_Type): New
	subsidiary function to Freeze_ Expression, used to determine
	whether an aggregate for an array of access types also freezes the
	designated type, when some aggregate components are allocators.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

	* a-strsea.adb (Find_Token): AI05-031 indicates that the
	procedure must raise Index_Error when Source is not empty and
	the From parameter is not within the range of the Source string.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Is_Static_String_Expression): Allow string
	literal in Ada 83 mode.



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

	* aspects.ads: Documentation fix, aspect Lock_Free does have a
	corresponding pragma.
	* gnat_rm.texi: Document implementation defined boolean aspects
	as boolean.



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

	* sem_attr.adb (Eval_Attribute): Ensure that attribute
	reference is not marked as being a static expression if the
	prefix evaluation raises CE.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* exp_pakd.adb: Move bit packed entity tables to spec.
	* exp_pakd.ads: Move bit packed entity tables here from body.
	* freeze.adb (Freeze_Array_Type): Check that packed array type
	is supported.
	* rtsfind.adb (PRE_Id_Table): New table (Entity_Not_Defined):
	Specialize messages using PRE_Id_Table.
	* uintp.ads, uintp.adb (UI_Image): New functional form.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add Suppress_Initialization aspect.
	* einfo.ads, einfo.adb (Suppress_Initialization): Now applies to
	E_Variable.
	* exp_ch3.adb (Default_Initialize_Object): Handle
	Suppress_Initialization.
	* exp_prag.adb (Expand_Pragma_Suppress_Initialization): New
	procedure (Expand_N_Pragma): Handle Suppress_Initialization
	(Expand_Pragma_Import_Or_Interface): Use Undo_Initialization
	(Undo_Initialization): New procedure.
	* sem_prag.adb (Analyze_Pragma, case Suppress_Initialization):
	This is now allowed for E_Variable case.
	* gnat_rm.texi: Document new aspect Suppress_Initialization
	Suppress_Initialization aspect/pragma can apply to variable.
	* einfo.ads: Minor reformatting.

2014-10-17  Arnaud Charlet  <charlet@adacore.com>

	* spark_xrefs.ads: Add documentation pointer to Flow_Computed_Globals.

2014-10-17  Robert Dewar  <dewar@adacore.com>

	* cstand.adb (Create_Standard): Mark Short_Integer as
	implementation defined.
	* sem_util.adb (Set_Entity_With_Checks): Avoid blow up for
	compiler built with assertions for No_Implementation_Identifiers test.



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

	* exp_ch3.adb (Build_Component_Invariant_Call): Retrieve Invariant
	subprogram from base type.
	* sem_ch7.adb (Analyze_Package_Specification): Build invariant
	subprogram for private type, not any of its subtypes.
	* sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set type
	of procedure entity, because a call to it may be generated in
	a client unit before the corresponding subprogram declaration
	is analyzed.

2014-10-17  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Get_Directories): Do not create directories
	when a project is abstract.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): If the domain
	of iteration is given by an expression that is not an array type,
	verify that its type implements an iterator iterface.



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

	* sem_ch5.adb, sem_ch7.adb, prj-nmsc.adb, sem_ch13.adb, exp_ch3.adb:
	Minor reformatting.



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