Commit Graph

131891 Commits

Author SHA1 Message Date
Arnaud Charlet
7ed571892e [multiple changes]
2014-08-04  Robert Dewar  <dewar@adacore.com>

	* prj-proc.adb, prj-part.adb, prj-strt.adb, prj.adb, prj.ads,
	prj-attr.adb, prj-attr.ads: Minor reformatting.

2014-08-04  Yannick Moy  <moy@adacore.com>

	* expander.adb (Expand): Always perform special
	expansion in GNATprove mode, even when doing pre-analysis.

2014-08-04  Thomas Quinot  <quinot@adacore.com>

	* repinfo.adb (List_Scalar_Storage_Order): List bit order if
	not default. Also list bit order if SSO is specified. Do not
	assume that bit order is always equal to scalar storage order.

2014-08-04  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb (Set_SSO_From_Default): Do not set scalar storage
	order to reverse SSO for a type that has an explicit native
	Bit_Order.

2014-08-04  Doug Rupp  <rupp@adacore.com>

	* cal.c: Macro check for VxWorks7.
	* init.c (getpid): Likewise.
	* mkdir.c (__gnat_mkdir): Likewise.
	* sysdep.c (__gnat_is_file_not_found_error): Likewise.

2014-08-04  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Inhibit generation
	of an invariant check in the case where No_Initialization is set,
	since the object is uninitialized.

2014-08-04  Thomas Quinot  <quinot@adacore.com>

	* snames.ads-tmpl (Default_Scalar_Storage_Order): Now an attribute
	name, in addition to a pragma name.
	* snames.adb-tmpl (Get_Pragma_Id, Is_Configuration_Pragma_Name,
	Is_Pragma_Name): Adjust accordingly.
	* sem_attr.ads, sem_attr.adb, exp_attr.adb
	(Attribute_Default_Scalar_Storage_Order): Add handling of new
	attribute.
	* gnat_rm.texi: Document the above.

From-SVN: r213549
2014-08-04 11:55:01 +02:00
Arnaud Charlet
af6478c843 [multiple changes]
2014-08-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb (Check_Float_Op_Overflow): No-op in codepeer
	mode for now, to revert to previous behavior.
	* checks.adb: Revert previous change, no longer needed.

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Don't set
	Check_Float_Overflow if Machine_Oveflows_On_Target is True.
	* sem_prag.adb (Analyze_Pragma, case Check_Float_Overflow): Don't
	set Check_Float_Overflow if Machine_Oveflows_On_Target is True.
	* switch-c.adb (Scan_Front_End_Switches): Don't set
	Check_Float_Overflow if Machine_Oveflows_On_Target is True.

2014-08-04  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: Add new default indications for
	attributes Object_Dir, Exec_Dir, Source_Dirs and Target.
	(Attribute_Default_Of): New function (Initialize): Set the
	default for those attributes that have one specified.
	* prj-attr.ads (Attribute_Data): New component Default.
	* prj-proc.adb (Expression): Take into account the new defaults
	for attributes Object_Dir, Exec_Dir and Source_Dirs.
	* prj-strt.adb (Attribute_Reference): Set the default for
	the attribute.
	* prj-tree.ads, prj-tree.adb (Default_Of): New function.
	(Set_Default_Of): New procedure.
	* prj.adb (The_Dot_String): New global Name_Id variable,
	initialized in procedure Initialize.
	(Dot_String): New function
	(Initialize): Initialize The_Dot_String.
	(Reset): Create the string list Shared.Dot_String_List.
	* prj.ads (Attribute_Default_Value): New enumeration type.
	(Project_Qualifier): Change enumeration value Dry to Abstract_Project.
	(Dot_String): New function.
	(Shared_Project_Tree_Data): New string list component Dot_String_List.
	* projects.texi: Document new defaults for attribute Object_Dir,
	Exec_Dir and Source_Dirs.

From-SVN: r213548
2014-08-04 11:52:02 +02:00
Arnaud Charlet
e943fe8a6a [multiple changes]
2014-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb: Minor reformatting.

2014-08-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb, checks.adb (Check_Float_Op_Overflow): Add special
	expansion in CodePeer_Mode.
	(Selected_Range_Checks): Add handling of overflow checks in
	CodePeer_Mode.

From-SVN: r213547
2014-08-04 11:49:19 +02:00
Arnaud Charlet
29049f0b22 [multiple changes]
2014-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference, case Pred):
	Remove special test for Float'First, no longer required.
	(Expand_N_Attribute_Reference, case Succ): Remove special test
	for Float'First, no longer required.
	* s-fatgen.adb (Pred): return infinity unchanged.
	(Succ): ditto.

2014-08-04  Claire Dross  <dross@adacore.com>

	* sem_ch12.adb (Analyze_Associations): Defaults should only be
	used if there is no explicit match.
	* exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity):
	Also check for pragma external_axiomatization on generic units.

From-SVN: r213546
2014-08-04 11:47:14 +02:00
Arnaud Charlet
d26d790dca [multiple changes]
2014-08-04  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Activate_Overflow_Check): Remove
	Check_Float_Overflow processing.
	(Apply_Scalar_Range_Check): Ditto.
	(Generate_Range_Check): Ditto.
	* exp_ch4.adb (Expand_N_Op_Add): Add call to
	Check_Float_Op_Overflow.
	(Expand_N_Op_Divide): ditto.
	(Expand_N_Op_Multiply): ditto.
	(Expand_N_Op_Subtract): ditto.
	* exp_util.ads, exp_util.adb (Check_Float_Op_Overflow): New procedure.
	* sem_attr.adb (Analyze_Attribute, case Pred): Make sure
	Do_Range_Check is set for floating-point case in -gnatc or
	GNATprove mode.
	(Analyze_Attribute, case Succ): Make sure
	Do_Range_Check is set for floating-point case in -gnatc or
	GNATprove mode.
	* sem_res.adb (Resolve_Type_Conversion): Make sure Do_Range_Check
	flag is set for real to integer conversion in GNATprove or
	-gnatc mode.

2014-08-04  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Resolve
	the expression of an Import or Export aspect as type Boolean
	and require it to be static. Add ??? comment. Also, set the
	Is_Exported flag when appropriate.

From-SVN: r213545
2014-08-04 11:38:17 +02:00
Ganesh Gopalasubramanian
d478ac59ee Compute extend family info for AMD CPU and update for BTVER2
From-SVN: r213544
2014-08-04 09:27:31 +00:00
Tom de Vries
b085b0e9fe For cproj test-case, use glibc version xfail
2014-08-04  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/cproj-fails-with-broken-glibc.c: Use xfail for broken glibc
	version instead of required-target.
	* lib/target-supports.exp
	(check_effective_target_not_glibc_2_11_or_earlier): Replace by ...
	(check_effective_target_glibc_2_11_or_earlier): ... this.

	* doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
	(glibc_2_11_or_earlier): Document effective-target keywords.

From-SVN: r213543
2014-08-04 08:29:59 +00:00
Robert Dewar
dfaff97b61 exp_ch4.adb: Minor reformatting.
2014-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor reformatting.
	* exp_attr.adb: Minor reformatting.

From-SVN: r213541
2014-08-04 10:12:01 +02:00
Arnaud Charlet
8575023cdc [multiple changes]
2014-08-04  Thomas Quinot  <quinot@adacore.com>

	* s-fatgen.ads, s-fatgen.adb (S, P): New visible type declarations
	(Unaligned_Valid): Remove now unused subprogram.
	* exp_attr.adb (Expand_N_Attribute_Reference, case
	Attribute_Valid): If the prefix is in reverse SSO or potentially
	unaligned, copy it using a byte copy operation to a temporary
	variable.
	* einfo.adb: Minor comment fix.

2014-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* freeze.adb (Freeze_Entity): Do not freeze formal subprograms.

From-SVN: r213540
2014-08-04 10:11:06 +02:00
Robert Dewar
8616baee3a s-imgrea.adb (Image_Floating_Point): Don't add space before +Inf.
2014-08-04  Robert Dewar  <dewar@adacore.com>

	* s-imgrea.adb (Image_Floating_Point): Don't add space before +Inf.
	* s-fatgen.adb (Pred): Handle Float'First.
	(Succ): Handle Float'Last.

From-SVN: r213539
2014-08-04 10:09:31 +02:00
Arnaud Charlet
98bf4cf497 [multiple changes]
2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Is_Potentially_Unevaluated): If the original
	node of a parent node in the tree is a short-circuit operation,
	the node is potentially unevaluated.

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Resolve_Type_Conversion): Set Do_Range_Check on
	conversion from a real type to an integer type.

From-SVN: r213538
2014-08-04 10:07:57 +02:00
Arnaud Charlet
ce5ba43a4e [multiple changes]
2014-08-04  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_ch7.adb, sem_ch9.adb,
	sem_ch12.adb, sem_util.adb, sem_util.ads, sem_res.adb, sem_attr.adb,
	exp_ch6.adb, sem_ch4.adb, restrict.adb, restrict.ads, sem_ch6.adb,
	sem_ch8.adb, sem_ch11.adb: Update some subprogram names to refer to
	SPARK_05 instead of SPARK.

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* sem.ads: Minor reformatting.
	* sem_ch13.adb (Analyze_Aspect_External_Or_Link_Name): Minor
	reformatting.
	(Analyze_Aspect_Specifications, case Convention): Put External_Name
	before Link_Name when constructing pragma.

From-SVN: r213537
2014-08-04 10:06:12 +02:00
Yannick Moy
3dd7e28d9f sem.adb, sem.ads (In_Default_Expr): Global flag that is set to True during analysis of a default component expression.
2014-08-04  Yannick Moy  <moy@adacore.com>

	* sem.adb, sem.ads (In_Default_Expr): Global flag that is set
	to True during analysis of a default component expression.
	(Semantics): Save and restore In_Default_Expr around analysis.
	* sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration):
	Call new wrapper Preanalyze_Default_Expression.
	(Preanalyze_Default_Expression): New wrapper on
	Preanalyze_Spec_Expression which sets and restores In_Default_Expr.
	* sem_res.adb (Resolve_Call): Mark calls inside default
	expressions as not inlined in GNATprove mode.

From-SVN: r213536
2014-08-04 10:01:36 +02:00
Arnaud Charlet
6c56d9b8a6 [multiple changes]
2014-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor reformatting.

2014-08-04  Olivier Hainque  <hainque@adacore.com>

	* link.c: remove const on __gnat_objlist_file_supported for AIX

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads: Minor addition of comment.

2014-08-04  Vincent Celier  <celier@adacore.com>

	* prj-dect.adb (Check_Package_Allowed): Allow package IDE in
	all projects, including aggregate and aggregate library projects.

2014-08-04  Yannick Moy  <moy@adacore.com>

	* back_end.adb (Call_Back_End): Do not call gigi in GNATprove mode.

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Test_In_Range): Always in range for
	Is_Known_Valid target type, where input type has smaller or
	equal size and does not have biased rep.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Eval_Attribute): Constrained is not treated as
	a static attribute, and the Static flag must not be set on it
	during resolution. It may be constant-folded during expansion,
	but if expansion is disabled it is not a static expression.

From-SVN: r213535
2014-08-04 10:00:05 +02:00
Arnaud Charlet
ad5edba5ce [multiple changes]
2014-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch8.adb (Build_Class_Wide_Wrapper): Mark the primitive as
	referenced once resolution has taken place.

2014-08-04  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Don't
	compare access levels in the case where the target type is the
	anonymous type of an access discriminant, since the level of
	such types is defined based on context. Add comment.

From-SVN: r213534
2014-08-04 09:57:40 +02:00
Arnaud Charlet
b6621d10eb [multiple changes]
2014-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch8.adb (Build_Class_Wide_Wrapper): Handle various special
	cases related to equality.  Remove the special processing
	for dispatching abstract subprograms as it is not needed.
	(Interpretation_Error): Add a specialized error message for
	predefined operators.
	(Is_Intrinsic_Equality): New routine.
	(Is_Suitable_Candidate): New routine.

2014-08-04  Gary Dismukes  <dismukes@adacore.com>

	* checks.adb: Minor comment reformatting.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* restrict.adb (Check_Restriction): For checked max_parameter
	restrictions reset Violated flag, so that subsequent violations
	are properly detected.

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb (Check_Initialization): Fix bad test of GNATprove
	mode.
	(Process_Discriminants): Fix bad test of GNATprove mode

2014-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch12.adb (Instantiate_Formal_Subprogram):
	Move variable to their own section. Propagate the source
	location of a formal parameter to the corresponding formal of
	the subprogram renaming declaration. Code reformatting.

From-SVN: r213533
2014-08-04 09:56:02 +02:00
Arnaud Charlet
f5655e4a94 [multiple changes]
2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Expand_Array_Aggregate): Do not attempt expansion
	if error already detected.  We may reach this point in spite of
	previous errors when compiling with -gnatq, to force all possible
	errors (this is the usual ACATS mode).

2014-08-04  Gary Dismukes  <dismukes@adacore.com>

	* checks.adb (Generate_Range_Check): For the case of converting
	a base type with a larger range to a smaller target subtype, only
	use unchecked conversions of bounds in the range check followed
	by conversion in the case where both types are discrete. In other
	cases, convert to the target base type and save in a temporary
	followed by the range check.
	(Convert_And_Check_Range): New procedure factoring code to save
	conversion to a temporary followed by a range check (called two
	places in Generate_Range_Check).
	* exp_ch4.adb (Expand_N_Type_Conversion): Relax previous
	check-in, to generate range checks for conversions between
	any floating-point types rather than limiting it to matching
	base types.

From-SVN: r213532
2014-08-04 09:54:00 +02:00
Arnaud Charlet
5262791178 Removed.
From-SVN: r213531
2014-08-04 09:53:47 +02:00
Arnaud Charlet
fb4fb123ac discr6.adb, [...]: Removed, no longer relevant.
* gnat.dg/discr6.adb, gnat.dg/discr6_pkg.ads: Removed, no longer
        relevant.
        * gnat.dg/debug1.ads: Adjust.
        * gnat.dg/formal_type.ads: Fix error in test.

From-SVN: r213530
2014-08-04 09:45:28 +02:00
GCC Administrator
b734a5c91e Daily bump.
From-SVN: r213529
2014-08-04 00:16:57 +00:00
Jan Hubicka
9716cc3eff ipa-devirt.c (odr_type_warn_count): Add type.
* ipa-devirt.c (odr_type_warn_count): Add type.
	(possible_polymorphic_call_targets): Set it.
	(ipa_devirt): Use it.

From-SVN: r213526
2014-08-03 14:02:19 +00:00
Marek Polacek
62e4eb3553 c-common.c (check_case_value): Add location_t parameter.
* c-common.c (check_case_value):  Add location_t parameter.  Use it.
	(c_add_case_label): Pass loc to check_case_value.

	* gcc.dg/case-bogus-1.c: New test.

From-SVN: r213525
2014-08-03 12:23:03 +00:00
GCC Administrator
87d5ce4856 Daily bump.
From-SVN: r213523
2014-08-03 00:16:53 +00:00
Paolo Carlini
2821a748d1 re PR c++/15339 ([DR217] Adding default arguments to function templates in redeclarations should be forbidden)
2014-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/15339
	* testsuite/26_numerics/headers/complex/synopsis.cc: Fix.

From-SVN: r213520
2014-08-02 21:38:34 +00:00
Paolo Carlini
e83a4a2e40 re PR c++/15339 ([DR217] Adding default arguments to function templates in redeclarations should be forbidden)
/cp
2014-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/15339
	* decl.c (check_redeclaration_no_default_args): New.
	(duplicate_decls): Use it, handle default arguments
	in redeclarations of function templates.

/testsuite
2014-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/15339
	* g++.dg/other/default9.C: New.
	* g++.dg/other/default10.C: Likewise.
	* g++.dg/other/default3.C: Remove xfail.

From-SVN: r213519
2014-08-02 19:41:32 +00:00
Jan Hubicka
91bc34a94d invoke.texi (Wsuggest-final-types, [...]): Document.
* doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods): Document.
	* ipa-devirt.c: Include hash-map.h
	(struct polymorphic_call_target_d): Add type_warning and decl_warning.
	(clear_speculation): Break out of ...
	(get_class_context): ... here; speed up handling obviously useless
	speculations.
	(odr_type_warn_count, decl_warn_count): New structures.
	(final_warning_record): New structure.
	(final_warning_records): New static variable.
	(possible_polymorphic_call_targets): Cleanup handling of speculative info;
	do not build speculation when user do not care; record info about warnings
	when asked for.
	(add_decl_warning): New function.
	(type_warning_cmp): New function.
	(decl_warning_cmp): New function.
	(ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
	(gate): Enable pass when warnings are requested.
	* common.opt (Wsuggest-final-types, Wsuggest-final-methods): New options.

	* g++.dg/warn/Wsuggest-final.C: New testcase.
	* g++.dg/ipa/devirt-34.C: Fix.

From-SVN: r213518
2014-08-02 15:13:41 +00:00
Trevor Saunders
b787e7a2c2 convert many uses of pointer_map to hash_map
gcc/c-family/

	* cilk.c: Use hash_map instead of pointer_map.

gcc/c/

	* c-typeck.c: Use hash_map instead of pointer_map.

gcc/cp/

	* optimize.c, semantics.c: Use hash_map instead of pointer_map.

gcc/

	* hash-map.h (default_hashmap_traits::mark_key_deleted):
	Fix cast.
	(hash_map::remove): New method.
(hash_map::traverse): New method.
	* cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
	ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
	tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
	tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
	tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
 pointer_map.

From-SVN: r213517
2014-08-02 11:34:54 +00:00
Trevor Saunders
6e2830c3db add a hash_set based on hash_table
This allows us to replace the usage of pointer_set outside of
pointer_map with a nicer interface.

gcc/ada/

	* gcc-interface/trans.c: Use hash_set instead of pointer_set.

gcc/c-family/

	* c-gimplify.c: Use hash_set instead of pointer_set.

gcc/c/

	* c-decl.c: Use hash_set instead of pointer_set.

gcc/cp/

	* class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c,
	method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set
	instead of pointer_set.

gcc/fortran/

	* openmp.c, trans-decl.c: Use hash_set instead of pointer_set.

gcc/

	* hash-set.h: new File.
	* cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
	cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
	ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
	lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
	tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
	tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
	tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
	varpool.c: Use hash_set instead of pointer_set.

gcc/lto/

	* lto-partition.c, lto-partition.h: Use hash_set instead of
	pointer_set.

From-SVN: r213516
2014-08-02 11:23:49 +00:00
Marek Polacek
2df06cec0a re PR c/59855 (Support sparse-style __attribute__((designated_init)) on structures, requiring designated initializers)
PR c/59855
	* gcc.dg/Wdesignated-init-2.c: New test.

From-SVN: r213515
2014-08-02 05:52:30 +00:00
Ian Lance Taylor
dc14e88e07 re PR other/61895 (libbacktrace crashes with bus error with empty file argv[0])
PR other/61895

runtime: Ignore small argv[0] file for backtrace.

Reportedly in some cases Docker starts processes with argv[0]
pointing to an empty file.  That would cause libgo to pass
that empty file to libbacktrace, which would then fail to do
any backtraces.  Everything should work fine if libbacktrace
falls back to /proc/self/exe.

This patch to libgo works around the problem by ignoring
argv[0] if it is a small file, or if stat fails.  This is not
a perfect fix but it's an unusual problem.

From-SVN: r213513
2014-08-02 00:54:15 +00:00
Jason Merrill
3bc63227d5 re PR c++/60417 ([DR 1518] Bogus error on C++03 aggregate initialization)
PR c++/60417
	* init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on
	init-list for trailing elements.
	* typeck2.c (process_init_constructor_array): Likewise.

From-SVN: r213511
2014-08-01 20:52:09 -04:00
GCC Administrator
f42589ed15 Daily bump.
From-SVN: r213510
2014-08-02 00:16:58 +00:00
Paolo Carlini
e1d9e3db7e DR 217 again
/cp
2014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>

	DR 217 again
	* decl.c (duplicate_decls): Handle static member functions too.

/testsuite
2014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>

	DR 217 again
	* g++.dg/tc1/dr217-2.C: New.

From-SVN: r213505
2014-08-01 19:59:56 +00:00
Zifei Tong
a7f930e7c3 atexit_thread.cc (HAVE___CXA_THREAD_ATEXIT_IMPL): Add _GLIBCXX_ prefix to macro.
2014-08-01  Zifei Tong  <zifeitong@gmail.com>

	* libsupc++/atexit_thread.cc (HAVE___CXA_THREAD_ATEXIT_IMPL): Add
	_GLIBCXX_ prefix to macro.

From-SVN: r213504
2014-08-01 20:45:56 +01:00
Arnaud Charlet
aaebbe1f5e * update_web_docs_svn: Simplify build of gnat_ugn.
From-SVN: r213503
2014-08-01 21:00:14 +02:00
Igor Zamyatin
fba8a9e3f6 cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint in error output.
gcc/cp/
	* cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
	in error output.

From-SVN: r213495
2014-08-01 17:23:40 +00:00
Igor Zamyatin
ffebf50f2f re PR other/61963 (CilkPlus Array Notation ICE in build_array_notation_ref on malformed function arguments.)
PR other/61963

gcc/cp/
	* parser.c (cp_parser_array_notation): Added check for array_type.

gcc/testsuite/
	* c-c++-common/cilk-plus/AN/pr61963.c: New test.

From-SVN: r213494
2014-08-01 17:20:02 +00:00
Igor Zamyatin
a7ee52fba0 re PR c++/61455 (Internal compiler error, and other confused errors, when using array notation)
PR middle-end/61455

gcc/c-family/
	* array-notation-common.c (extract_array_notation_exprs): Handling
	of DECL_EXPR added.

gcc/c/
	* c-array-notation.c (expand_array_notations): Handling
	of DECL_EXPR added.

gcc/cp/
	* cp-array-notation.c (expand_array_notation_exprs): Handling of
	DECL_EXPR improved. Changed handling for INIT_EXPR.

gcc/testsuite/
	* c-c++-common/cilk-plus/AN/pr61455.c: New test.
	* c-c++-common/cilk-plus/AN/pr61455-2.c: Likewise.

From-SVN: r213491
2014-08-01 16:54:27 +00:00
Alan Lawrence
663683746c Removed unused get_lane and dup_lane builtins.
* config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.

From-SVN: r213490
2014-08-01 16:18:35 +00:00
Jiong Wang
20c0aa30c5 Adding missing testcase.
(should svn add first...)

From-SVN: r213489
2014-08-01 15:20:46 +00:00
Jiong Wang
15c0c5c912 [AArch64] Improve TARGET_LEGITIMIZE_ADDRESS_P hook
currently, aarch64 LEGITIMIZE_ADDRESS_P hook will reject all "reg + offset"
address given "offset" is beyond supported range.

while this may be too strict. we should honor the "strict_p" parameter in the
hook. before reload, we accept all offset if it's a frame access, because the
offset may change during later register elimination.

the early reject of "reg + offset" may cause extra registers created, and if
that register live range is across function invoking then callee saved reg
needed, thus introduce extra reg save/restore also.

give a simple example as:

int
test15 (void)
{
   unsigned char a[480];
   initialize_array (a, 480);

   if (a[0] == 0x10)
     return 1;

   return 0;
}

.S before the patch
(-O2 -fPIC)
===
test15:
         sub     sp, sp, #480
         mov     w1, 480
         stp     x29, x30, [sp, -32]!
         add     x29, sp, 0
         str     x19, [sp, 16]
         add     x19, x29, 32
         mov     x0, x19
         bl      initialize_array
         ldrb    w0, [x19]
         ldr     x19, [sp, 16]
         ldp     x29, x30, [sp], 32
         cmp     w0, 16
         cset    w0, eq
         add     sp, sp, 480
         ret

.S after the patch
===
test15:
         stp     x29, x30, [sp, -496]!
         mov     w1, 480
         add     x29, sp, 0
         add     x0, x29, 16
         bl      initialize_array
         ldrb    w0, [x29, 16]
         ldp     x29, x30, [sp], 496
         cmp     w0, 16
         cset    w0, eq
         ret

gcc/
  * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset for
  frame access when strict_p is false.

gcc/testsuite
   * gcc.target/aarch64/legitimize_stack_var_before_reload_1.c: New testcase.

From-SVN: r213488
2014-08-01 15:17:03 +00:00
Jiong Wang
4470747882 [AArch64][2/2] Add constrain to address offset in storewb_pair/loadwb_pair insns
Add a pridicate to check whether the const offset is valid.
For 32-bit variant: -256 <= offset <= 252
For 64-bit variant: -512 <= offset <= 504

2014-07-29  Renlin Li  <renlin.li@arm.com>
2014-07-29  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
  aarch64_offset_7bit_signed_scaled_p, remove static and use it.
  * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
  Declaration.
  * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
  predicate.
  * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
  aarch64_mem_pair_offset.

From-SVN: r213487
2014-08-01 15:09:05 +00:00
Jiong Wang
e244d1e6cc Update ChangeLog for commit 213485.
From-SVN: r213486
2014-08-01 15:05:54 +00:00
Jiong Wang
3e322b3f2f [AArch64][1/2] Fix offset glitch in load reg pair pattern
on aarch64, we are using load register pair post-writeback instruction in
epilogue.

for example, for the following instruction:

ldp, x0, x1, [sp], #16

what it's doing is:

x0 <- MEM(sp + 0)
x1 <- MEM(sp + 8)
sp < sp + 16

while there is a glitch in our loadwb_pair* pattern, the restore of the
first reg should always be with offset zero.

(set (match_operand:GPI 2 "register_operand" "=r")
-          (mem:GPI (plus:P (match_dup 1)
-                   (match_dup 4))))
+          (mem:GPI (match_dup 1)))

gcc/
  * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix offset.
  (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
  * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.

From-SVN: r213485
2014-08-01 14:54:57 +00:00
Matthew Fortune
fb01ed3883 MIPS REGISTER_PREFIX definition
gcc/

	* config/mips/mips.h (REGISTER_PREFIX): Define macro.

From-SVN: r213484
2014-08-01 14:46:25 +00:00
Ed Schonberg
1696d58da2 restrict.adb (Update_Restrictions): For restrictions with a maximum parameter (e.g.
2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* restrict.adb (Update_Restrictions): For restrictions with a
	maximum parameter (e.g. number of protected entries in Ravenscar)
	do not compute the maximum of the violation over several objects,
	because the restriction is per-object.
	(Check_Restriction): After possible message, reset the value
	of of a checked max_parameter restriction to zero, to prevent
	cascaded errors.
	* sem_ch3.adb (Build_Derived_Private_Type): Use base of parent
	(sub)type to determine whether derived type should be on the
	list of private dependents of a type whose full view may become
	visible subsequently.

From-SVN: r213483
2014-08-01 16:46:11 +02:00
Arnaud Charlet
9a30c7c409 [multiple changes]
2014-08-01  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS, native): use
	$(CXX) instead of ../../xg++ to feed CXX.
	(CXX_LFLAGS): Remove. Now unused as the proper flags
	are expected to be included in the CXX variable.

2014-08-01  Pierre-Marie Derodat  <derodat@adacore.com>

	* gcc-interface/decl.c (elaborate_expression_1): Return the new
	variable when debug info is needed and the expression is not
	constant.  Tag as external only new variables that are global.
	(gnat_to_gnu_entity): Call it after the GNU declaration is saved.
	* gcc-interface/trans.c (Attribute_to_gnu): Do not cache
	attributes for IN array parameters when their actual subtype
	needs debug info.
	(Compilation_Unit_to_gnu): Call it to process all remaining nodes.
	* gcc-interface/gigi.h (process_deferred_decl_context): New.
	* gcc-interface/utils.c (gnat_write_global_declarations): Do not
	emit debug info for ignored global declarations.
	(struct deferred_decl_context_node,
	add_deferred_decl_context, add_deferred_type_context,
	compute_deferred_decl_context, defer_or_set_type_context,
	deferred_decl_context_queue, get_debug_scope,
	get_global_context, process_deferred_decl_context): New.
	(gnat_pushdecl): Re-implement the DECL_CONTEXT and TYPE_CONTEXT
	computation machinery to rely on the GNAT Scope attribute.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_simple_component_ref): Add guard.

From-SVN: r213482
2014-08-01 16:45:26 +02:00
Jiong Wang
88b1a3221d Add myself to Write After Approval list.
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r213481
2014-08-01 14:40:24 +00:00
Arnaud Charlet
a43f6434db [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb, opt.ads Minor comment updates.

2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_intr.adb (Expand_Unc_Deallocation): Request a renaming
	from the side effects removal machinery.
	* exp_util.adb (Duplicate_Subexpr): Add formal parameter
	Renaming_Req. Update the nested call to Remove_Side_Effects.
	(Duplicate_Subexpr_No_Checks): Add formal parameter
	Renaming_Req. Update the nested call to Remove_Side_Effects.
	(Duplicate_Subexpr_Move_Checks): Add formal parameter
	Renaming_Req. Update the nested call to Remove_Side_Effects.
	(Remove_Side_Effects): Add formal parameter Renaming_Req. Generate
	an object renaming declaration when the caller requests it.
	* exp_util.ads (Duplicate_Subexpr): Add formal
	parameter Renaming_Req. Update comment on usage.
	(Duplicate_Subexpr_No_Checks): Add formal parameter Renaming_Req.
	(Duplicate_Subexpr_Move_Checks): Add formal parameter
	Renaming_Req.

From-SVN: r213480
2014-08-01 16:37:00 +02:00
Arnaud Charlet
bdc193bad1 [multiple changes]
2014-08-01  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Minor updates.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* atree.adb: Minor reformatting.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Init_Hidden_Discriminants): If some ancestor is a
	private extension, get stored constraint, if any, from full view.

From-SVN: r213479
2014-08-01 16:35:44 +02:00