- 30 Aug, 2011 40 commits
-
-
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 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 -
PR c++/50114 * decl.c (poplevel): Disable for scope compatibility hack in C++11 mode. From-SVN: r178338
Jason Merrill committed -
* 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, 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 -
* 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. (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 -
* 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 -
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 -
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 template function argument in a lambda) PR c++/50220 * semantics.c (add_capture): Call complete_type for copy. From-SVN: r178326
Jason Merrill committed -
PR c++/50234 * semantics.c (cxx_eval_component_reference): Handle value-initialization for omitted initializers. From-SVN: r178325
Jason Merrill committed -
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 -
From-SVN: r178323
Arnaud Charlet committed -
From-SVN: r178322
Arnaud Charlet committed -
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 -
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 -
From-SVN: r178318
Yannick Moy committed -
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 -
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 -
From-SVN: r178315
Tristan Gingold committed -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 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 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 -
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 -
* 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
Bernd Schmidt committed -
* 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
Bernd Schmidt committed -
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
Gary Dismukes committed -
* 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
Bernd Schmidt committed
-