PR ipa/63583

	* ipa-icf-gimple.c (func_checker::compare_gimple_asm):
	Gimple tempate string is compared.

	* gcc.dg/ipa/pr63595.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216458 138bc75d-0d04-0410-961f-82ee72b054a4
	PR debug/60655
	* simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
	Increase "ops" array size.  Correct array size tests.  Init
	n_constants in loop.  Break out of innermost loop when finding
	a trivial CONST expression.



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

	* tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
	operands to get a def operand kind match.  Signal mismatches
	to the parent so we can try swapping its operands.
	(vect_build_slp_tree): Try swapping operands if they have
	a mismatched operand kind.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216463 138bc75d-0d04-0410-961f-82ee72b054a4
	* src/c++98/Makefile.am: Move ctype.cc, ctype_configure_char.cc and
	ctype_members.cc to ...
	* src/c++11/Makefile.am: Here.
	* src/c++98/Makefile.in: Regenerate.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++98/ctype.cc: Move file to ...
	* src/c++11/ctype.cc: Here, define ctype_base::blank.
	* config/abi/pre/gnu.ver: Export ctype_base::blank.
	* config/locale/generic/ctype_members.cc
	(ctype<wchar_t>::_M_convert_to_wmask): Handle blank. Update comments.
	* config/locale/gnu/ctype_members.cc
	(ctype<wchar_t>::_M_convert_to_wmask): Likewise.
	* config/os/aix/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bionic/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/bsd/darwin/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/darwin/ctype_inline.h (ctype<char>::is): Use blank.
	(ctype<wchar_t::do_is): Likewise.
	* config/os/bsd/dragonfly/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/dragonfly/ctype_inline.h (ctype<char>::is): Use blank.
	(ctype<wchar_t::do_is): Likewise.
	* config/os/bsd/freebsd/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/freebsd/ctype_inline.h (ctype<char>::is): Use blank.
	(ctype<wchar_t::do_is): Likewise.
	* config/os/bsd/netbsd/ctype_base.h (ctype_base::blank): Declare.
	* config/os/bsd/openbsd/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/djgpp/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/generic/ctype_base.h (ctype_base::blank): Declare.
	* config/os/generic/ctype_inline.h (ctype<char>::is): Use blank.
	* config/os/gnu-linux/ctype_base.h (ctype_base::blank): Declare.
	* config/os/hpux/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/mingw32-w64/ctype_base.h (ctype_base::blank): Declare.
	* config/os/mingw32-w64/ctype_configure_char.cc
	(ctype<char>::classic_table()): Set blank bit for space and tab.
	* config/os/mingw32/ctype_base.h (ctype_base::blank): Declare.
	* config/os/mingw32/ctype_configure_char.cc
	(ctype<char>::classic_table()): Set blank bit for space and tab.
	* config/os/newlib/ctype_base.h (ctype_base::blank): Declare.
	* config/os/qnx/qnx6.1/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/solaris/solaris2.10/ctype_base.h (ctype_base::blank):
	Likewise.
	* config/os/tpf/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/uclibc/ctype_base.h (ctype_base::blank): Likewise.
	* config/os/vxworks/ctype_base.h (ctype_base::blank): Likewise.
	* include/bits/locale_facets.h (isblank): Define.
	* include/bits/localefwd.h (isblank): Declare.
	* testsuite/22_locale/classification/isblank.cc: New.
	* testsuite/22_locale/ctype_base/blank.cc: New.

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

	* gcc.dg/tree-ssa/slsr-19.c: Make robust against operand order changes.
	* gcc.dg/tree-ssa/reassoc-20.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216465 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-20  Arnaud Charlet  <charlet@adacore.com>

	* set_targ.adb (Write_Target_Dependent_Values, Write_Line):
	Fix calling C APIs with no trailing NUL char by calling better
	wrappers instead.

2014-10-20  Tristan Gingold  <gingold@adacore.com>

	* gnat_ugn.texi: Document that gdb users must be in group
	_developer on mac os.

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

	* a-tgdico.ads: Fix typo.

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

	* exp_aggr.adb (Convert_To_Assignments): Do not create a
	transient scope for a component whose type requires it, if the
	context is an initialization procedure, because the target of
	the assignment must be visible outside of the block.

2014-10-20  Tristan Gingold  <gingold@adacore.com>

	* tracebak.c: Define PC_ADJUST for arm-darwin.
	* env.c: Remove darwin specific code.
	* raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin.

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

	* sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view
	is incomplete rather than private, and full type declaration
	has aspects, analyze aspects on the full view rather than
	the incomplete view, to prevent freezing anomalies with the
	class-wide type.



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

	* sem_ch13.adb: Improve error recovery on illegal aspect.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216472 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (List_Inlining_Info): Minor tweaks.
	(Add_Inlined_Body): Inline the enclosing package
	if it is not internally generated, even if it doesn't come
	from source.

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

	* sem_ch4.adb (Process_Function_Call): If the first actual
	denotes a discrete type, the mode must be interpreted as a slice
	of an array returned by a parameterless call.

2014-10-20  Vasiliy Fofanov  <fofanov@adacore.com>

	* prj-env.ads, prj-env.adb (Get_Runtime_Path): No longer inhibit
	searching for runtime referenced by a simple name on a project path.

2014-10-20  Olivier Hainque  <hainque@adacore.com>

	* vxworks-x86-link.spec: New file.
	* system-vxworks-x86.ads: Add pragma Linker_Options to link with
	vxworks-x86-link.spec.

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

	* opt.ads (Origin_Of_Target): New type.
	(Target_Origin): New variable.
	* prj-conf.adb (Parse_Project_And_Apply_Config): Record
	Target_Value and Target_Origin.  If target was not specified
	on the command line with --target=, check if attribute Target
	is declared in the main project. If it is and it is not the
	native target, parse again the projects so that 'Target get
	the new value. Fail if the target has changed again.  Invoke
	Process_Project_And_Apply_Config with Do_Phase_1 set to False
	is Process_Project_Tree_Phase_1 has already been invoked.
	* prj-conf.ads (Process_Project_And_Apply_Config): New Boolean
	parameter Do_Phase_1, defaulted to True.
	* prj-proc.adb (Expression): Check the special values and
	defaults for attribute Target.

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

	* sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze
	the subprogram spec of the body in full, because it will be
	reanalyzed when the declaration itself is analyzed;  otherwise. a
	formal may end up duplicated in the list of formals leading to
	spurious conformance errors with an existing declaration.



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

	* sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb, lib.ads,
	sem_ch13.adb: Minor reformatting.

2014-10-20  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Expand the
	declaration of a class-wide limited object containing an
	initializing expression into a renaming declaration.  Required to
	avoid passing such declaration to the backend and also to avoid
	generating an extra copy.



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

	* gnat_rm.texi: Document No_Tagged_Streams pragma and aspect.
	* snames.ads-tmpl: Add entry for pragma No_Tagged_Streams.
	* aspects.ads, aspects.adb: Add aspect No_Tagged_Streams.
	* einfo.adb (No_Tagged_Streams_Pragma): New field.
	* einfo.ads: Minor reformatting (reorder entries).
	(No_Tagged_Streams_Pragma): New field.
	* exp_ch3.adb: Minor comment update.
	* opt.ads (No_Tagged_Streams): New variable.
	* par-prag.adb: Add dummy entry for pragma No_Tagged_Streams.
	* sem.ads (Save_No_Tagged_Streams): New field in scope record.
	* sem_attr.adb (Check_Stream_Attribute): Check stream ops
	prohibited by No_Tagged_Streams.
	* sem_ch3.adb (Analyze_Full_Type_Declaration): Set
	No_Tagged_Streams_Pragma.
	(Analyze_Subtype_Declaration): ditto.
	(Build_Derived_Record_Type): ditto.
	(Record_Type_Declaration): ditto.
	* sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams.
	(Push_Scope): Save No_Tagged_Streams.
	* sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new
	pragma.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216476 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-20  Tristan Gingold  <gingold@adacore.com>

	* init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on
	arm-darwin.
	* raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for
	unused arguments.

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

	* sem_attr.adb (Analyze_Attribute): Replace
	variables CS and PS with Proc_Id and Subp_Id to better illustrate
	their purpose. Account for the case where _Postconditions
	has not been generated yet and the context is aspect/pragma
	Refined_Post. In that scenario the expected prefix of attribute
	'Result is the current scope.

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

	* par-ch4.adb (P_Expression): Handle extraneous comma/semicolon
	in middle of expression with logical operators.

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

	* par-ch13.adb (Possible_Misspelled_Aspect): New function.

2014-10-20  Steve Baird  <baird@adacore.com>

	* pprint.adb: Improve Expression_Image function.



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

	* prj-attr.adb: New project level attribute Runtime.
	* prj-conf.adb (Get_Project_Runtimes): New procedure to get
	the attributes Runtime declared in the main project, to use
	in auto-configuration.
	(Get_Or_Create_Configuration_File): Call Get_Project_Runtimes.
	* prj-proc.adb (Runtime_Defaults): New table to store
	the default values of attributes Runtime (<language>).
	(Set_Default_Runtime_For): New procedure to store the default
	value of a Runtime (<language>) in table Runtime_Defaults.
	(Expression): Use the value stored in table Runtime_Defaults as
	the default for Runtime (<language>).
	* prj-proc.ads (Set_Default_Runtime_For): New procedure.
	* prj.ads (Attribute_Default_Value): New enumerated value
	Runtime_Value.

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

	* sem_ch3.adb (Analyze_Object_Declaration): If the type is
	an unconstrained unchecked_union type, rewrite declaration
	as a renaming to prevent attempt to retrieve non- existent
	discriminants from expression.

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

	* gnat_ugn.texi: Minor reformatting.



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

	* gnat_ugn.texi: Minor reformatting.
	* sem_ch3.adb: Minor reformatting.



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

	* sem_ch3.adb, prj-proc.adb, prj-proc.ads, prj-conf.adb: Minor
	reformatting.

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

	* par-prag.adb (Add_List_Pragma_Entry): New procedure.
	* par.adb (P_Pragma): Document requirement to handle multiple calls.

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

	* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
	Fix error of bad inheritance of this pragma from with'ed unit.

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

	* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype,
	inherit convention from parent type, because the subtype may
	have been declared on a partial view, prior to the pragma on
	the parent.

2014-10-20  Olivier Hainque  <hainque@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	* gcc-interface/Makefile.in: Handle arm-darwin and VxWorks 7.
	Misc clean ups.

2014-10-20  Nicolas Roche  <roche@adacore.com>

	* gcc-interface/Make-lang.in: ensure that automatically generated
	dependency are referencing generated gnatvsn rather than original
	one.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216482 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c/63307
gcc/c-family/
	* cilk.c: Include vec.h.
	(struct cilk_decls): New structure.
	(wrapper_parm_cb): Split this function to...
	(fill_decls_vec): ...this...
	(create_parm_list): ...and this.
	(compare_decls): New function.
	(for_local_cb): Remove.
	(wrapper_local_cb): Ditto.
	(build_wrapper_type): For now first traverse and fill vector of
	declarations then sort it and then deal with sorted vector.
	(cilk_outline): Ditto.
	(declare_one_free_variable): Ditto.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216483 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-20  Andrew MacLeod  <amacleod@redhat.com>

	* cfgrtl.h: New.  Add prototypes for cfgrtl.c.
	* basic-block.h: Remove prototypes for cfgrtl.c.
	* cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
	prototypes to cfgrtl.h.
	* profile.h (profile_info): Add extern export declaration.
	* rtl.h: Remove prototypes for cfgrtl.h.
	* tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
	* ipa-inline.c: Include profile.h.
	* loop-unroll.c: Ditto.
	* modulo-sched.c: Ditto.
	* postreload-gcse.c: Ditto.
	* predict.c: Ditto.
	* sched-ebb.c: Ditto.
	* sched-rgn.c: Ditto.
	* tracer.c: Ditto.
	* tree-ssa-loop-ivcanon.c: Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216485 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Build_Derived_Private_Type): When the parent
	is untagged and has discriminants, build the implicit full
	view even if the derived type is a completion, and make it
	the Underlying_Full_View of the type.
	(Copy_And_Build): Fix Is_Completion actual parameter in the calls to
	Build_Derived_Type.
	(Build_Derived_Record_Type): Likewise.

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

	* sem_ch13.adb: Add guard to convention setting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216487 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/63601
	* lambda.c (current_nonlambda_function): New.
	* semantics.c (finish_this_expr): Use it.
	* cp-tree.h: Declare it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216488 138bc75d-0d04-0410-961f-82ee72b054a4
reflect: allocate correct type in assignTo and cvtT2I

Backport https://codereview.appspot.com/155450044 from the
master Go library.  Original description:

I came across this while debugging a GC problem in gccgo.
There is code in assignTo and cvtT2I that handles assignment
to all interface values.  It allocates an empty interface even
if the real type is a non-empty interface.  The fields are
then set for a non-empty interface, but the memory is recorded
as holding an empty interface.  This means that the GC has
incorrect information.

This is extremely unlikely to fail, because the code in the GC
that handles empty interfaces looks like this:

obj = nil;
typ = eface->type;
if(typ != nil) {
        if(!(typ->kind&KindDirectIface) || !(typ->kind&KindNoPointers))
                obj = eface->data;

In the current runtime the condition is always true--if
KindDirectIface is set, then KindNoPointers is clear--and we
always want to set obj = eface->data.  So the question is what
happens when we incorrectly store a non-empty interface value
in memory marked as an empty interface.  In that case
eface->type will not be a *rtype as we expect, but will
instead be a pointer to an Itab.  We are going to use this
pointer to look at a *rtype kind field.  The *rtype struct
starts out like this:

type rtype struct {
        size          uintptr
        hash          uint32            // hash of type; avoids computation in hash tables
        _             uint8             // unused/padding
        align         uint8             // alignment of variable with this type
        fieldAlign    uint8             // alignment of struct field with this type
        kind          uint8             // enumeration for C

An Itab always has at least two pointers, so on a
little-endian 64-bit system the kind field will be the high
byte of the second pointer.  This will normally be zero, so
the test of typ->kind will succeed, which is what we want.

On a 32-bit system it might be possible to construct a failing
case by somehow getting the Itab for an interface with one
method to be immediately followed by a word that is all ones.
The effect would be that the test would sometimes fail and the
GC would not mark obj, leading to an invalid dangling
pointer.  I have not tried to construct this test.

I noticed this in gccgo, where this error is much more likely
to cause trouble for a rather random reason: gccgo uses a
different layout of rtype, and in gccgo the kind field happens
to be the low byte of a pointer, not the high byte.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216489 138bc75d-0d04-0410-961f-82ee72b054a4
compiler, runtime: Add type information to single object allocation.


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