1. 31 Aug, 2011 3 commits
  2. 30 Aug, 2011 37 commits
    • re PR fortran/45044 (Different named COMMON block size: No warning) · dc8c7978
      2011-08-30  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/45044
              * trans-common.c (build_common_decl): Warn if named common
              block's size is not everywhere the same.
      
      2011-08-30  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/45044
              * gfortran.dg/common_14.f90: New.
              * gfortran.dg/common_resize_1.f: Add two dg-warning.
      
      From-SVN: r178344
      Tobias Burnus committed
    • re PR c++/50084 ([C++0x] ICE: decltype + remove_reference + new) · d9cdfea5
      	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
      Jason Merrill committed
    • re PR c++/50089 ([C++0x] ICE when calling a qualified base class member function… · 90677b8d
      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
      Jason Merrill committed
    • re PR c++/50114 (ICE with declaration inside for statement) · 971df06b
      	PR c++/50114
      	* decl.c (poplevel): Disable for scope compatibility hack
      	in C++11 mode.
      
      From-SVN: r178338
      Jason Merrill committed
    • i386.c (ix86_valid_target_attribute_inner_p): Handle FMA option. · c683a53a
      	* 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
      Uros Bizjak committed
    • system-irix-n64.ads, [...]: Remove GCC_ZCX_Support. · 7d266442
      	* 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
      Eric Botcazou committed
    • ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check. · 4f1a975c
      	* 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
      Eric Botcazou committed
    • raise-gcc.c: Do not include coretypes.h and tm.h. · f2991b48
      	* 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
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Do not convert the expression to the nominal type if... · 10a22f43
      	* 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
      Eric Botcazou committed
    • stl_iterator.h (make_move_iterator): Implement DR2061. · b6717379
      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
      Paolo Carlini committed
    • re PR fortran/45170 ([F2003] allocatable character lengths) · 505920d6
      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
      Steven G. Kargl committed
    • re PR c++/50220 ([C++0x] [4.7 Regression] ICE when capturing a by-reference… · a728a2ad
      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
      Jason Merrill committed
    • re PR c++/50234 (internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527) · d05da2b9
      	PR c++/50234
      	* semantics.c (cxx_eval_component_reference): Handle
      	value-initialization for omitted initializers.
      
      From-SVN: r178325
      Jason Merrill committed
    • arm.c (optimal_immediate_sequence_1): Make b1, b2, b3 and b4 unsigned. · 5de35240
      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
      Andrew Stubbs committed
    • Switch to GPLv3 · 71c4391e
      From-SVN: r178323
      Arnaud Charlet committed
    • Update dependencies · 3467e8c7
      From-SVN: r178322
      Arnaud Charlet committed
    • [multiple changes] · c37cbdc3
      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
      Arnaud Charlet committed
    • arm.c (arm_gen_constant): Set can_negate correctly when code is SET. · f8dd28d6
      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
      Andrew Stubbs committed
    • * gcc-interface/Make-lang.in: Update dependencies. · bd34109a
      From-SVN: r178318
      Yannick Moy committed
    • [multiple changes] · bfa2e39d
      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
      Arnaud Charlet committed
    • exp_ch9.adb, [...]: Minor reformatting. · a0347839
      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
      Arnaud Charlet committed
    • opt.ads, [...]: Update comment. · 3597c0e9
      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
      Robert Dewar committed
    • [multiple changes] · da94696d
      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
      Arnaud Charlet committed
    • re PR tree-optimization/48571 (Missed data-dependence for (bogus?) reconstructed array-refs) · 315f5f1b
      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
      Richard Guenther committed
    • Add FMA intrinsics and testcases. · 2ddd46d6
      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
      Ilya Tocar committed
    • [multiple changes] · c199ccf7
      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
      Arnaud Charlet committed
    • [multiple changes] · dff99e1a
      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
      Arnaud Charlet committed
    • [multiple changes] · 63be2a5a
      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
      Arnaud Charlet committed
    • sem_ch3.adb (Check_Abstract_Overriding): Code cleanup... · dd54644b
      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
      Javier Miranda committed
    • [multiple changes] · d3ba478e
      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
      Arnaud Charlet committed
    • [multiple changes] · c01817d2
      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
      Arnaud Charlet committed
    • exp_ch5.adb, [...]: Minor reformatting · 996c8821
      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
      Robert Dewar committed
    • Rename avx2-vmovmskb-2.c to avx2-vpmovmskb-2.c. · 8ed6164c
      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
      Kirill Yukhin committed
    • exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to… · 3647ca26
      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
      Hristian Kirtchev committed
    • exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an interface… · 6d4e4fbc
      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
      Javier Miranda committed
    • [multiple changes] · d15f9422
      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
      Arnaud Charlet committed