Commit Graph

111583 Commits

Author SHA1 Message Date
Jason Merrill
d9cdfea55f re PR c++/50084 ([C++0x] ICE: decltype + remove_reference + new)
PR c++/50084
	* cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p
	to type_definition_p.
	* parser.c (cp_parser_set_decl_spec_type): Likewise.
	* decl.c (grokdeclarator): Check it.

From-SVN: r178340
2011-08-30 17:27:36 -04:00
Jason Merrill
90677b8d91 re PR c++/50089 ([C++0x] ICE when calling a qualified base class member function within a lambda expr without "this->")
PR c++/50089
	* semantics.c (finish_id_expression): Use
	current_nonlambda_class_type for qualified-ids.

From-SVN: r178339
2011-08-30 17:27:27 -04:00
Jason Merrill
971df06b2f re PR c++/50114 (ICE with declaration inside for statement)
PR c++/50114
	* decl.c (poplevel): Disable for scope compatibility hack
	in C++11 mode.

From-SVN: r178338
2011-08-30 17:27:18 -04:00
Uros Bizjak
c683a53ae1 i386.c (ix86_valid_target_attribute_inner_p): Handle FMA option.
* config/i386/i386.c (ix86_valid_target_attribute_inner_p):
	Handle FMA option.

testsuite/ChangeLog:

	* gcc.target/i386/fma-compile.c: Escape [ and ] in scan strings.

From-SVN: r178337
2011-08-30 19:52:29 +02:00
Eric Botcazou
7d266442af system-irix-n64.ads, [...]: Remove GCC_ZCX_Support.
* system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads,
	system-linux-mips.ads, system-linux-mipsel.ads,
	system-linux-mips64el.ads, system-linux-ppc64.ads,
	system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support.

From-SVN: r178336
2011-08-30 16:49:06 +00:00
Eric Botcazou
4f1a975cc1 ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
* gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
	* gcc-interface/utils2.c (build_binary_op): Tighten condition.
	(build_unary_op): Likewise.

From-SVN: r178335
2011-08-30 16:46:12 +00:00
Eric Botcazou
f2991b4820 raise-gcc.c: Do not include coretypes.h and tm.h.
* raise-gcc.c: Do not include coretypes.h and tm.h.
	(setup_to_install): Remove test for compiler macro.
	* targext.c: Document use for the library.
	* gcc-interface/Makefile.in: Fix comment on the use of IN_GCC.

From-SVN: r178333
2011-08-30 16:35:54 +00:00
Eric Botcazou
10a22f4330 decl.c (gnat_to_gnu_entity): Do not convert the expression to the nominal type if...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not convert
	the expression to the nominal type if the latter is a record type with
	a variant part and the type of the former is a record type without one.

Co-Authored-By: Laurent Rougé <laurent.rouge@menta.fr>

From-SVN: r178331
2011-08-30 16:15:49 +00:00
Paolo Carlini
b671737962 stl_iterator.h (make_move_iterator): Implement DR2061.
2011-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_iterator.h (make_move_iterator): Implement DR2061.
	* testsuite/24_iterators/move_iterator/dr2061.cc: New.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line numbers.

From-SVN: r178330
2011-08-30 15:34:50 +00:00
Steven G. Kargl
505920d6b1 re PR fortran/45170 ([F2003] allocatable character lengths)
2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/45170
	* trans-stmt.c (gfc_trans_allocate): Evaluate the substring.

2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/45170
	* gfortran.dg/allocate_with_source_2.f90: New test

From-SVN: r178329
2011-08-30 15:34:01 +00:00
Jason Merrill
a728a2ada0 re PR c++/50220 ([C++0x] [4.7 Regression] ICE when capturing a by-reference template function argument in a lambda)
PR c++/50220
	* semantics.c (add_capture): Call complete_type for copy.

From-SVN: r178326
2011-08-30 11:28:40 -04:00
Jason Merrill
d05da2b9d5 re PR c++/50234 (internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527)
PR c++/50234
	* semantics.c (cxx_eval_component_reference): Handle
	value-initialization for omitted initializers.

From-SVN: r178325
2011-08-30 11:28:30 -04:00
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