Commit Graph

111521 Commits

Author SHA1 Message Date
Andrew Stubbs
5de3524042 arm.c (optimal_immediate_sequence_1): Make b1, b2, b3 and b4 unsigned.
2011-08-30  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
	b3 and b4 unsigned.

From-SVN: r178324
2011-08-30 15:02:26 +00:00
Arnaud Charlet
71c4391e49 Switch to GPLv3
From-SVN: r178323
2011-08-30 17:01:43 +02:00
Arnaud Charlet
3467e8c710 Update dependencies
From-SVN: r178322
2011-08-30 16:58:35 +02:00
Arnaud Charlet
c37cbdc310 [multiple changes]
2011-08-30  Jose Ruiz  <ruiz@adacore.com>

	* s-taskin.ads (Common_ATCB): Add field domain which contains the
	dispatching domain to which the task belongs.
	* s-taskin.adb (Initialize): Create the default system dispatching
	domain and make the environment task part of it.
	* s-mudido.ads: Add this new spec for standard Ada 2012 package
	Ada.Multiprocessors.Dispatching_Domains.
	* s-mudido.adb: Add this new body for targets not supporting
	dispatching domains.
	* s-mudido-affinity.adb: Add this new body for targets supporting
	dispatching domains setting the affinity to a CPU set.
	* bindgen.adb (Dispatching_Domain_Used, Check_Dispatching_Domains_Used,
	Gen_Adainit): When package System.Multiprocessors.Dispatching_Domains
	is used we call the procedure to signal that when we are about to call
	the main subprogram no new dispatching domain can be created.
	(Check_File_In_Partition): Factor out the common functionality used by
	Check_System_Restrictions_Used and Check_Dispatching_Domains_Used.
	* s-tassta.adb (Create_Task): Tasks inherit the dispatching domain of
	their activators.
	* s-taprop.ads (Set_Task_Affinity): Add this new procedure to set task
	affinities.
	* s-taprop-dummy.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
	s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vms.adb
	(Set_Task_Affinity): Dummy null body for these targets not supporting
	task affinities.
	s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-solaris.adb,
	s-taprop-vxworks.adb (Create_Task, Enter_Task, Initialize): Handle
	dispatching domains and set the affinity of the environment task.
	(Set_Task_Affinity): Procedure that uses the underlying CPU set
	functionality to handle dispatching domains, pragma CPU and Task_Info.
	s-winext.ads (SetThreadAffinityMask): Import this function needed to
	set CPU masks.
	* s-osinte-solaris.ads (psetit_t, pset_create, pset_assign, pset_bind):
	Import the functionality to handle CPU set affinities.
	* affinity.c: New file.
	* s-osinte-vxworks.ads, s-vxwext.ads, s-vxwext-kernel.ads,
	s-vxwext-rtp.ads (taskMaskAffinitySet): Add this new spec for setting
	affinity masks.
	* s-vxwext.adb, s-vxwext-kernel.adb, s-vxwext-rtp.adb 
	(taskMaskAffinitySet): Body returning an error indicating that task
	affinities are not supported.
	Makefile.rtl: Indicate that s-mudido is part of libgnarl.
	* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks SMP,
	Solaris, Windows, and {x86,PowerPC, ia64,x86_64} Linux): Use the
	s-mudido-affinity.adb body which supports task affinities.

2011-08-30  Thomas quinot  <quinot@adacore.com>

	* sem_ch13.adb: Minor reformatting.

2011-08-30  Vincent Celier  <celier@adacore.com>

	* vms_conv.adb (Process_Argument): When the qualifier
	/UNCHECKED_SHARED_LIB_IMPORTS is for GNAT COMPILE, do not put the
	corresponding switch --unchecked-shared-lib-imports after -cargs, as it
	is for gnatmake, not for the compiler.

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Quantified_Expression): Analyze iterator
	specification and condition only in Semantics_Only mode. Otherwise the
	analysis is done after expression has been rewritten as loop.
	* sem_ch5.adb (Analyze_Iterator_Specification): Always generate a
	temporary for the iterator name (the domain of iteration) because it
	may need finalization actions and these must be generated outside of
	the loop.
	* sem_res.adb (Resolve_Quantified_Expression): Resolve only in
	Semantic_Only mode.
	* exp_ch4.adb (Expand_Quantified_Expression): Analyze and resolve once
	rewritten as loop.
	* exp_ch5.adb (Expand_Iterator_Loop): Code clean-up, now that the
	iterator is always an expression.

2011-08-30  Robert Dewar  <dewar@adacore.com>

	* par-ch4.adb (P_Unparen_Cond_Case_Quant_Expression): New function
	(P_Expression_If_OK): New spec checks parens
	(P_Expression_Or_Range_Attribute_If_OK): New spec checks parens
	* par.adb (P_Expression_If_OK): New spec checks parens
	(P_Expression_Or_Range_Attribute_If_OK): New spec checks parens

From-SVN: r178321
2011-08-30 16:56:45 +02:00
Andrew Stubbs
f8dd28d62d arm.c (arm_gen_constant): Set can_negate correctly when code is SET.
2011-08-30  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.c (arm_gen_constant): Set can_negate correctly
	when code is SET.

From-SVN: r178319
2011-08-30 14:28:17 +00:00
Yannick Moy
bd34109a28 * gcc-interface/Make-lang.in: Update dependencies.
From-SVN: r178318
2011-08-30 16:23:30 +02:00
Arnaud Charlet
bfa2e39d89 [multiple changes]
2011-08-30  Yannick Moy  <moy@adacore.com>

	* exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
	expansion in Alfa mode.
	* exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public
	* exp_alfa.adb, exp_alfa.ads: New package defining light expansion for
	Alfa mode.
	* gnat1drv.adb (Adjust_Global_Switches): Update Comment.
	* sem_res.adb: Ditto.

2011-08-30  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: Minor documentation adjustment.

From-SVN: r178317
2011-08-30 16:20:11 +02:00
Arnaud Charlet
a0347839da exp_ch9.adb, [...]: Minor reformatting.
2011-08-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.

2011-08-30  Yannick Moy  <moy@adacore.com>

	* exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,
	exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,
	exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,
	gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:
	Revert change which introduced files for "light"
	expansion, to be replaced by a single file for Alfa expansion.

From-SVN: r178316
2011-08-30 16:16:43 +02:00
Tristan Gingold
5b8ca141c2 Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage
From-SVN: r178315
2011-08-30 16:13:06 +02:00
Robert Dewar
3597c0e902 opt.ads, [...]: Update comment.
2011-08-30  Robert Dewar  <dewar@adacore.com>

	* opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.
	Minor code reorg/reformatting.

From-SVN: r178314
2011-08-30 16:12:00 +02:00
Arnaud Charlet
da94696d33 [multiple changes]
2011-08-30  Yannick Moy  <moy@adacore.com>

	* opt.adb, opt.ads (Full_Expander_Active): New function defines a
	common shorthand for (Expander_Active and not ALFA_Mode) that can be
	used for testing full expansion, that is active expansion not in the
	reduced mode for Alfa
	* exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,
	sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead
	of the verbose (Expander_Active and not ALFA_Mode)

2011-08-30  Tristan Gingold  <gingold@adacore.com>

	* s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,
	s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,
	s-secsta.ads, s-parame.ads, s-parame-vxworks.ads: Renames Ratio to
	Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage.

From-SVN: r178313
2011-08-30 16:06:25 +02:00
Richard Guenther
315f5f1bfb re PR tree-optimization/48571 (Missed data-dependence for (bogus?) reconstructed array-refs)
2011-08-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48571
	* gimple.h (maybe_fold_offset_to_address): Remove.
	(maybe_fold_offset_to_reference): Likewise.
	(maybe_fold_stmt_addition): Likewise.
	(may_propagate_address_into_dereference): Likewise.
	* tree-inline.c (remap_gimple_op_r): Do not reconstruct
	array references.
	* gimple-fold.c (canonicalize_constructor_val): Likewise.
	Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
	addresses instead.
	(may_propagate_address_into_dereference): Remove.
	(maybe_fold_offset_to_array_ref): Likewise.
	(maybe_fold_offset_to_reference): Likewise.
	(maybe_fold_offset_to_address): Likewise.
	(maybe_fold_stmt_addition): Likewise.
	(fold_gimple_assign): Do not reconstruct array references but
	instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
	MEM_REF addresses.
	(gimple_fold_stmt_to_constant_1): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
	* gimplify.c (gimplify_conversion): Likewise.
	(gimplify_expr): Likewise.

	* gcc.c-torture/execute/pr48571-1.c: New testcase.
	* gcc.dg/tree-ssa/ssa-ccp-25.c: Remove.
	* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
	* gcc.dg/pr36902.c: XFAIL.

From-SVN: r178312
2011-08-30 14:06:00 +00:00
Ilya Tocar
2ddd46d69b Add FMA intrinsics and testcases.
gcc/

2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/fmaintrin.h: New.
	* config.gcc: Add fmaintrin.h.
	* config/i386/i386.c
	(enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
	<IX86_BUILTIN_VFMADDSD3>: Likewise.
	* config/i386/sse.md (fmai_vmfmadd_<mode>): New.
	(*fmai_fmadd_<mode>): Likewise.
	(*fmai_fmsub_<mode>): Likewise.
	(*fmai_fnmadd_<mode>): Likewise.
	(*fmai_fnmsub_<mode>): Likewise.
	* config/i386/immintrin.h: Add fmaintrin.h.

gcc/testsuite/

2011-08-30  Ilya Tocar <ilya.tocar@intel.com>

	* gcc.target/i386/fma-check.h: New.
	* gcc.target/i386/fma-256-fmaddXX.c: New testcase.
	* gcc.target/i386/fma-256-fmaddsubXX.c: Likewise.
	* gcc.target/i386/fma-256-fmsubXX.c: Likewise.
	* gcc.target/i386/fma-256-fmsubaddXX.c: Likewise.
	* gcc.target/i386/fma-256-fnmaddXX.c: Likewise.
	* gcc.target/i386/fma-256-fnmsubXX.c: Likewise.
	* gcc.target/i386/fma-fmaddXX.c: Likewise.
	* gcc.target/i386/fma-fmaddsubXX.c: Likewise.
	* gcc.target/i386/fma-fmsubXX.c: Likewise.
	* gcc.target/i386/fma-fmsubaddXX.c: Likewise.
	* gcc.target/i386/fma-fnmaddXX.c: Likewise.
	* gcc.target/i386/fma-fnmsubXX.c: Likewise.
	* gcc.target/i386/fma-compile.c: Likewise.
	* gcc.target/i386/i386.exp (check_effective_target_fma): New.
	* gcc.target/i386/sse-12.c: Add -mfma.
	* gcc.target/i386/sse-13.c: Likewise.
	* gcc.target/i386/sse-14.c: Likewise.
	* gcc.target/i386/sse-22.c: Likewise.
	* gcc.target/i386/sse-23.c: Likewise.
	* g++.dg/other/i386-2.C: Likewise.
	* g++.dg/other/i386-3.C: Likewise.

From-SVN: r178311
2011-08-30 07:02:53 -07:00
Arnaud Charlet
c199ccf758 [multiple changes]
2011-08-30  Gary Dismukes  <dismukes@adacore.com>

	* sem_res.adb (Valid_Conversion): Revise test for implicit anonymous
	access conversions to check that the conversion is a rewritten node,
	rather than just having Comes_From_Source set to False, which wasn't
	sufficient.

2011-08-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,
	g-socket.ads: Minor reformatting.

2011-08-30  Thomas Quinot  <quinot@adacore.com>

	* sem_util.adb: Minor reformatting.

2011-08-30  Tristan Gingold  <gingold@adacore.com>

	* raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,
	to be compliant with the ABI.

From-SVN: r178310
2011-08-30 16:01:42 +02:00
Arnaud Charlet
dff99e1a52 [multiple changes]
2011-08-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch12.adb (Check_Private_View): Exchange the private and full view
	of a designated type when the related access type is an actual in an
	instance. This ensures that the full view of designated type is
	available when inside the body of the instance.

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
	in a position to be modified, a slice is treated like an indexed
	component.

From-SVN: r178308
2011-08-30 15:57:09 +02:00
Arnaud Charlet
63be2a5ab4 [multiple changes]
2011-08-30  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
	field tv_sec in struct timeval.

2011-08-30  Yannick Moy  <moy@adacore.com>

	* exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
	blocks of code doing full expansion, previously only guarded by
	Expander_Active, by anding the test that ALFA_Mode is not set

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
	add the function to the list of private dependents, for subsequent
	legality check on Taft amendment types.
	* sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
	Private_Dependents, as for other incomplete types.
	* sem_util.adb (Wrong_Type): Avoid cascaded errors when a
	Taft-amendment type is used as the return type of a function.

From-SVN: r178307
2011-08-30 15:53:38 +02:00
Javier Miranda
dd54644b31 sem_ch3.adb (Check_Abstract_Overriding): Code cleanup...
2011-08-30  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
	which emits an error by a call to a new routine which report the error.
	* exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
	entity does not cover an existing interface.
	* errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
	code.
	* sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
	protected procedures or entries whose mode is not conformant.
	(Check_Synchronized_Overriding): Code cleanup: replace code which emits
	an error by a call to a new routine which report the error.

From-SVN: r178306
2011-08-30 15:50:19 +02:00
Arnaud Charlet
d3ba478e3f [multiple changes]
2011-08-30  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor change.
	* exp_attr_light.adb: Minor reformatting.

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: Patch inheritance of aspects in
	Complete_Private_Subtype, to avoid infinite loop.

From-SVN: r178305
2011-08-30 15:44:27 +02:00
Arnaud Charlet
c01817d2e0 [multiple changes]
2011-08-30  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
	been reported and a subprogram covering an interface primitive is not
	found then skip generating the internal entity. Done to avoid crashing
	the frontend.
	(Check_Abstract_Overriding): Change text of error of wrong formal of
	protected subprogram or entry. Done for consistency to emit exactly the
	same error reported by Check_Synchronized_Overriding. In addition, the
	error is restricted to protected types (bug found working on AI05-0090)

2011-08-30  Yannick Moy  <moy@adacore.com>

	* exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
	expansion in Alfa mode.
	* exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
	* exp_light.adb, exp_light.ads: New package defining light expansion.
	* expander.adb (Expand): Call light expansion in Alfa mode
	* exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
	constructs.
	* exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
	constructs.
	* exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
	* gnat1drv.adb (Adjust_Global_Switches): Comment

2011-08-30  Yannick Moy  <moy@adacore.com>

	* lib-xref-alfa.adb: Minor refactoring.

2011-08-30  Yannick Moy  <moy@adacore.com>

	* exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
	mode.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
	expansion in Alfa mode.
	* sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
	mode.

2011-08-30  Robert Dewar  <dewar@adacore.com>

	* debug_a.adb: Update comment.

From-SVN: r178304
2011-08-30 15:41:24 +02:00
Robert Dewar
996c8821a2 exp_ch5.adb, [...]: Minor reformatting
2011-08-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
	sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
	exp_ch4.adb, exp_ch6.adb, s-bbthre.adb, lib-xref-alfa.adb,
	sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting

2011-08-30  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
	volatile.

From-SVN: r178303
2011-08-30 15:31:38 +02:00
Kirill Yukhin
8ed6164c72 Rename avx2-vmovmskb-2.c to avx2-vpmovmskb-2.c.
2011-08-30  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR testsuite/50185
	* gcc.target/i386/avx2-vmovmskb-2.c: Rename to ...
	* gcc.target/i386/avx2-vpmovmskb-2.c: ... this. Update.

From-SVN: r178302
2011-08-30 06:28:21 -07:00
Hristian Kirtchev
3647ca2687 exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to Build_Finalization_Master by supplying an insertion node...
2011-08-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
	Build_Finalization_Master by supplying an insertion node and enclosing
	scope. In its old version, the call did not generate a finalization
	master.
	(Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
	recognize anonymous access-to-controlled components. Rewrite the
	machinery which creates finalization masters to service anonymous
	access-to-controlled components of a record type. In its current state,
	only one heterogeneous master is necessary to handle multiple anonymous
	components.
	(Freeze_Type): Comment reformatting.
	* rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
	RE_Unit_Table.
	* s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
	associates TSS primitive Finalize_Address with either the master itself
	or with the internal hash table depending on the mode of operation of
	the master.

From-SVN: r178301
2011-08-30 15:28:16 +02:00
Javier Miranda
6d4e4fbcd2 exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an interface type then do not generate...
2011-08-30  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
	interface type then do not generate code to compare this component.
	Required since they have no components and their equality operator is
	abstract.

From-SVN: r178300
2011-08-30 15:23:33 +02:00
Arnaud Charlet
d15f94220d [multiple changes]
2011-08-30  Steve Baird  <baird@adacore.com>

	* sem_util.ads (Deepest_Type_Access_Level): New function; for the type
	of a saooaaat (i.e, a stand-alone object of an anonymous access type),
	returns the (static) accessibility level of the object. Otherwise, the
	same as Type_Access_Level.
	(Dynamic_Accessibility_Level): New function; given an expression which
	could occur as the rhs of an assignment to a saooaaat (i.e., an
	expression of an access-to-object type), return the new value for the
	saooaaat's associated Extra_Accessibility object.
	(Effective_Extra_Accessibility): New function; same as
	Einfo.Extra_Accessibility except that object renames are looked through.
	* sem_util.adb 
	(Deepest_Type_Access_Level): New function; see sem_util.ads description.
	(Dynamic_Accessibility_Level): New function; see sem_util.ads
	description.
	(Effective_Extra_Accessibility): New function; see sem_util.ads
	description.
	* einfo.ads (Is_Local_Anonymous_Access): Update comments.
	(Extra_Accessibility): Update comments.
	(Init_Object_Size_Align): New procedure; same as Init_Size_Align
	except RM_Size field (which is only for types) is unaffected.
	* einfo.adb
	(Extra_Accessibility): Expand domain to allow objects, not just formals.
	(Set_Extra_Accessibility): Expand domain to allow objects, not just
	formals.
	(Init_Size): Add assertion that we are not trashing the
	Extra_Accessibility attribute of an object.
	(Init_Size_Align): Add assertion that we are not trashing the
	Extra_Accessibility attribute of an object.
	(Init_Object_Size_Align): New procedure; see einfo.ads description.
	* sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
	differently for the type of a (non-library-level) saooaaat depending
	whether Ada_Version < Ada_2012. This is the only point where Ada_Version
	is queried in this set of changes - everything else (in particular,
	setting of the Extra_Accessibility attribute in exp_ch3.adb) is
	driven off of the setting of the Is_Local_Anonymous_Access attribute.
	The special treatment of library-level saooaaats is an optimization,
	not required for correctnesss. This is based on the observation that the
	Ada2012 rules (static and dynamic) for saooaaats turn out to be
	equivalent to the Ada2005 rules in the case of a library-level saooaaat.
	* exp_ch3.adb
	(Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
	false for the type of a saooaaat, declare and initialize its
	accessibility level object and set the Extra_Accessibility attribute
	of the saooaaat to refer to this object.
	* checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
	* exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
	calls to Effective_Extra_Accessibility in order to support
	renames of saooaaats.
	(Expand_N_Type_Conversion): Add new local function,
	Has_Extra_Accessibility, and call it when determining whether an
	accessibility check is needed.
	It returns True iff Present (Effective_Extra_Accessibility (Id)) would
	evaluate to True (without raising an exception).
	* exp_ch5.adb
	(Expand_N_Assignment_Statement): When assigning to an Ada2012
	saooaaat, update its associated Extra_Accessibility object (if
	it has one). This includes an accessibility check.
	* exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
	a saooaaat, update its Extra_Accessibility object too (if it
	has one).
	(Expand_Call): Replace a couple of calls to Type_Access_Level
	with calls to Dynamic_Access_Level to handle cases where
	passing a literal (any literal) is incorrect.
	* sem_attr.adb (Resolve_Attribute): Handle the static accessibility
	checks associated with "Saooaat := Some_Object'Access;"; this must
	be rejected if Some_Object is declared in a more nested scope
	than Saooaat.
	* sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
	assignment to a saooaaat even if Is_Local_Anonymous_Access
	returns False for its type (indicating a 2012-style saooaaat).
	* sem_ch8.adb
	(Analyze_Object_Renaming): Replace a call to Init_Size_Align
	(which is only appropriate for objects, not types) with a call
	of Init_Object_Size_Align in order to avoid trashing the
	Extra_Accessibility attribute of a rename (the two attributes
	share storage).
	* sem_res.adb
	(Valid_Conversion) Replace six calls to Type_Access_Level with
	calls to Deepest_Type_Access_Level. This is a bit tricky. For an
	Ada2012 non-library-level saooaaat, the former returns library level
	while the latter returns the (static) accessibility level of the
	saooaaat. A type conversion to the anonymous type of a saooaaat
	can only occur as part of an assignment to the saooaaat, so we
	know that such a conversion must be in a lhs context, so Deepest
	yields the result that we need. If such a conversion could occur,
	say, as the operand of an equality operator, then this might not
	be right. Also add a test so that static accessibilty checks are
	performed for converting to a saooaaat's type even if
	Is_Local_Anonymous_Access yields False for the type.

2011-08-30  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Check_Dispatching_Operation): Complete condition that
	controls generation of a warning associated with late declaration of
	dispatching functions. Required to avoid generating spurious
	warnings.

From-SVN: r178299
2011-08-30 15:22:13 +02:00
Bernd Schmidt
9645d43461 bb-reorder.c (insert_section_boundary_note): Only do it if we reordered the blocks; i.e.
* bb-reorder.c (insert_section_boundary_note): Only do it if
	we reordered the blocks; i.e. not if !optimize_function_for_speed_p.

From-SVN: r178298
2011-08-30 13:17:40 +00:00
Bernd Schmidt
070f36cf07 i386.c (get_pc_thunk_name): Change prefix to "__x86.get_pc_thunk".
* config/i386/i386.c (get_pc_thunk_name): Change prefix to
	"__x86.get_pc_thunk".
his line, and those below, will be ignored--

M    ChangeLog
M    config/i386/i386.c

From-SVN: r178297
2011-08-30 13:16:44 +00:00
Gary Dismukes
6cce215622 sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the return object has an anonymous access type and the...
2011-08-30  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
	return object has an anonymous access type and the function's type is
	a named access type.
	* sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
	conversions on implicit conversions, since such conversions can occur
	for anonymous access cases due to expansion. Issue error for attempt
	to rename an anonymous expression as an object of a named access type.
	* sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
	to indicate whether this function should report errors on invalid
	conversions.
	* sem_res.adb (Resolve): For Ada 2012, in the case where the type of
	the expression is of an anonymous access type and the expected type is
	a named general access type, rewrite the expression as a type
	conversion, unless this is an expression of a membership test.
	(Valid_Conversion.Error_Msg_N): New procedure that conditions the
	calling of Error_Msg_N on new formal Report_Errs.
	(Valid_Conversion.Error_Msg_NE): New procedure that conditions the
	calling of Error_Msg_NE on new formal Report_Errs.
	(Valid_Conversion): Move declaration of this function to the package
	spec, to allow calls from membership test processing. For Ada 2012,
	enforce legality restrictions on implicit conversions of anonymous
	access values to general access types, disallowing such conversions in
	cases where the expression has a dynamic accessibility level (access
	parameters, stand-alone anonymous access objects, or a component of a
	dereference of one of the first two cases).
	* sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
	in the context of a named general access expected type.
	* exp_ch4.adb Add with and use of Exp_Ch2.
	(Expand_N_In): Add processing for membership tests applied to
	expressions of an anonymous access type. First, Valid_Conversion is
	called to check whether the test is statically False, and then the
	conversion is expanded to test that the expression's accessibility
	level is no deeper than that of the tested type. In the case of
	anonymous access-to-tagged types, a tagged membership test is applied
	as well.
	(Tagged_Membership): Extend to handle access type cases, applying the
	test to the designated types.
	* exp_ch6.adb (Expand_Call): When creating an extra actual for an
	accessibility level, and the actual is a 'Access applied to a current
	instance, pass the accessibility level of the type of the current
	instance rather than applying Object_Access_Level to the prefix. Add a
	??? comment, since this level isn't quite right either (will eventually
	need to pass an implicit level parameter to init procs).

From-SVN: r178296
2011-08-30 15:16:22 +02:00
Bernd Schmidt
e12da14140 genautomata.c (NO_COMB_OPTION): New macro.
* genautomata.c (NO_COMB_OPTION): New macro.
	(no_comb_flag): New static variable.
	(gen_automata_option): Handle NO_COMB_OPTION.
	(comb_vect_p): False if no_comb_flag.
	(add_vect): Move computation of min/max values.  Return early if
	no_comb_flag.
	* doc/md.texi (automata_option): Document no-comb-vect.

From-SVN: r178295
2011-08-30 13:15:38 +00:00
Arnaud Charlet
747de90b11 [multiple changes]
2011-08-30  Bob Duff  <duff@adacore.com>

	* s-taskin.ads: Minor comment fix.

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Check_Parameterless_Call): If the node is a selected
	component and the selector is a dispatching operation, check if it is
	a prefixed call before rewriting as a parameterless function call.

From-SVN: r178294
2011-08-30 15:12:16 +02:00
Christian Bruel
cb89a1716c fix -fbranch-probabilities and adjust testsuite
From-SVN: r178289
2011-08-30 13:18:49 +02:00
Paolo Carlini
54e776dc2d error_constants.h: Fix commas.
2011-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	* config/os/mingw32/error_constants.h: Fix commas.

From-SVN: r178286
2011-08-30 08:57:52 +00:00
Jason Merrill
809fbdce1c re PR c++/50224 ([C++0x] bogus unused parameter warning (it is referenced in lambda))
PR c++/50224
	* semantics.c (finish_id_expression): Mark captured variables used.

From-SVN: r178277
2011-08-30 00:30:58 -04:00
Jakub Jelinek
e7b6bcf357 re PR c++/50207 (G++ segv's on reduced test case)
PR c++/50207
	* class.c (finish_struct_1): Complain if the first field is
	artificial.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r178276
2011-08-30 00:30:42 -04:00
Jason Merrill
25dd2fdd40 re PR c++/50209 ([C++0x] Braced-init-lists are rejected as function default arguments)
PR c++/50209
	Core DR 994
	* parser.c (cp_parser_default_argument): Use
	cp_parser_initializer_clause.
	(cp_parser_late_parsing_default_args): Likewise.

From-SVN: r178275
2011-08-30 00:30:27 -04:00
GCC Administrator
f767e2446f Daily bump.
From-SVN: r178269
2011-08-30 00:18:54 +00:00
Benjamin Kosnik
c419868bdf constexpr.cc: Add.
2011-08-29  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/20_util/duration/arithmetic/constexpr.cc: Add.

From-SVN: r178265
2011-08-29 23:25:17 +00:00
Ian Lance Taylor
1bbf7edba0 Lower calls to bound method expressions.
From-SVN: r178264
2011-08-29 22:06:19 +00:00
Ian Lance Taylor
273113346e Don't lower blocks twice.
From-SVN: r178263
2011-08-29 22:02:01 +00:00
Janus Weil
7a3eeb8555 re PR fortran/50225 ([OOP] The allocation status for polymorphic allocatable function results is not set properly)
2011-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50225
	* trans-decl.c (gfc_generate_function_code): Nullify polymorphic
	allocatable function results.

2011-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50225
	* gfortran.dg/class_result_1.f03: New.

From-SVN: r178262
2011-08-29 23:55:10 +02:00
Michael Meissner
3167ec4a0b Change default for -msave-toc-indirect
From-SVN: r178261
2011-08-29 21:29:23 +00:00
Michael Meissner
4aaf1d15d4 Change default for -msave-toc-indirect
From-SVN: r178260
2011-08-29 21:29:01 +00:00
Jakub Jelinek
cdc4cc6593 Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy tsystem.h into $(RTSDIR) instead of rts.
* gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
	tsystem.h into $(RTSDIR) instead of rts.

From-SVN: r178259
2011-08-29 23:01:42 +02:00
Jakub Jelinek
e621f5307a gthr-posix.h (__gthread_active_p): Do not use preprocessor conditionals and comments inside macro arguments.
* gthr-posix.h (__gthread_active_p): Do not use preprocessor
	conditionals and comments inside macro arguments.

From-SVN: r178258
2011-08-29 23:00:39 +02:00
Kai Tietz
edf2239b37 configure: Regenerated.
* configure: Regenerated.
	* config.h.in: Regenerated.
	* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR)  Add
	checks for ECHILD, ENOSPC, EPERM, ETIMEDOUT, and
	EWOULDBLOCK.
	*  config/os/mingw32/error_constants.h (errc): Add
	enumerator values no_child_process, no_space_on_device,
	not_supported, operation_not_permitted, operation_would_block,
	timed_out, and value_too_large,

From-SVN: r178257
2011-08-29 21:57:24 +02:00
Arnaud Charlet
226a7fa431 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
	reformatting.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-29  Yannick Moy  <moy@adacore.com>

	* alfa.ads (Name_Of_Heap_Variable): New constant name.
	* lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
	table to hold dereferences.
	(Add_ALFA_Xrefs): Take into account dereferences as special
	reads/writes to the variable "HEAP".
	(Enclosing_Subprogram_Or_Package): Move subprogram here.
	(Generate_Dereference): New procedure to store a read/write dereferencew
	in the table Drefs.
	* put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
	the special "HEAP" var.
	* sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
	in ALFA mode.
	* sem_util.adb (Note_Possible_Modification): Store write dereference
	in ALFA mode.

From-SVN: r178252
2011-08-29 16:40:11 +02:00
Hristian Kirtchev
dfbcb149aa exp_ch3.adb (Freeze_Type): Generate an accessibility check which ensures that the level of the subpool...
2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Freeze_Type): Generate an accessibility check which
	ensures that the level of the subpool access type is not deeper than
	that of the pool object.
	* sem_util.adb (Object_Access_Level): Expand to handle defining
	identifiers.
	* sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
	subpool handle name of a rewritten allocator.

From-SVN: r178250
2011-08-29 16:33:59 +02:00
Arnaud Charlet
1df4f514fa [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
	values, we generate multiple triples of parameters in the TypeCode.
	Bump Choice_Index for each such triple so that a subsequent default
	choice is associated with the correct index in the typecode.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* a-cdlili.adb (Iterate): Initialize properly an iterator over a null
	container.
	(First, Last): Handle properly an iterator over a null container.

2011-08-29  Bob Duff  <duff@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
	processing if we run across a node with no Scope. This can happen if
	we're with-ing an library-level instance, and that instance got errors
	that caused "instantiation abandoned".
	* sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
	an exception instead of using Assert, so it won't go into an infinite
	loop, even when assertions are turned off.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* a-coorse.adb: Proper handling of empty ordered sets.

From-SVN: r178249
2011-08-29 16:32:43 +02:00
Arnaud Charlet
14f0f659ac [multiple changes]
2011-08-29  Johannes Kanig  <kanig@adacore.com>

	* debug.adb: Add comments.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* impunit.adb, s-stposu.adb, s-stposu.ads, exp_ch4.adb,
	s-finmas.adb, s-finmas.ads: Redo previous change.

From-SVN: r178247
2011-08-29 16:29:25 +02:00
Arnaud Charlet
8027b4559b [multiple changes]
2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* a-except.adb, a-except-2005.adb: Minor comment rewording and
	reformatting.

2011-08-29  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Array_Type_Declaration): Remove insertion of
	declaration for Itypes in Alfa mode.

From-SVN: r178246
2011-08-29 16:26:53 +02:00
Arnaud Charlet
d85fd922e1 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
	a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
	a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
	reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
	package spec.
	* exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
	* a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
	while raising PE.

From-SVN: r178245
2011-08-29 16:25:19 +02:00