* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
If the current function calls eh_return, claim live all registers
that we need to check for liveness otherwise.
testsuite/
* gcc.target/powerpc (ehreturn.c): New test.
From-SVN: r165715
In gcc/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* c-decl.c (c_write_global_declarations): Call
objc_write_global_declarations when compiling Objective-C.
* c-lang.c (finish_file): Removed.
In gcc/c-family/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (finish_file): Removed.
(objc_write_global_declarations): New.
* c-opts.c (c_common_parse_file): Do not call finish_file.
* stub-objc.c (objc_write_global_declarations): New.
In gcc/cp/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* cp-lang.c (finish_file): Removed.
* decl2.c (cp_write_global_declarations): Call
objc_write_global_declarations when compiling Objective-C++.
In gcc/objc/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-lang.c (finish_file): Removed.
* objc-act.c (objc_finish_file): Renamed to
objc_write_global_declarations. Do not try to instantiate C++
templates when compiling Objective-C++ as this is now
automatically done before this function is called. Do not check
for syntax-only run or PCH generation as this is done by the
callers.
* objc-act.h (objc_finish_file): Removed.
In gcc/objcp/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* objcp-lang.c (finish_file): Removed.
In gcc/testsuite/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers. Test adapted to
not require Foundation and run with the GNU runtime as well.
2006-03-13 Fariborz Jahanian <fjahanian@apple.com>
Radar 4439126
* obj-c++.dg/template-8.mm: New.
From-SVN: r165714
2010-10-19 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb, exp_ch4.ads (Expand_Quantified_Expression): New procedure
* exp_util.adb (Insert_Actions): Include Quantified_Expression.
* expander.adb: Call Expand_Qualified_Expression.
* par.adb: New procedure P_Quantified_Expression. Make
P_Loop_Parameter_Specification global for use in quantified expressions.
* par-ch3.adb (P_Subtype_Mark_Resync): Allow "some" as an identifier if
version < Ada2012.
* par-ch4.adb: New procedure P_Quantified_Expression.
* par-ch5.adb: P_Loop_Parameter_Specification is now global.
* scans.adb, scans.ads: Introduce token Some. For now leave as
unreserved.
* scn.adb (Scan_Reserved_Identifier): For earlier versions of Ada,
treat Some as a regular identifier.
* sem.adb: Call Analyze_Quantified_Expression.
* sem_ch4.adb, sem_ch4.ads: New procedure Analyze_Quantified_Expression.
* sem_ch5.adb, sem_ch5.ads: Analyze_Iteration_Scheme is public, for use
in quantified expressions.
* sem_res.adb: New procedure Resolve_Qualified_Expression.
* sinfo.adb, sinfo.ads: New node N_Quantified_Expression
* snames.ads-tmpl: New name Some.
* sprint.adb: Output quantified_expression.
2010-10-19 Robert Dewar <dewar@adacore.com>
* a-exexda.adb: Minor reformatting
Minor code reorganization.
From-SVN: r165698
2010-10-19 Geert Bosch <bosch@adacore.com>
* ttypef.ads: Change VAXDF_Last to be -VAXDF_First, as type is
symmetric.
2010-10-19 Robert Dewar <dewar@adacore.com>
* atree.h (Field29): Fix incorrect definition.
* einfo.adb (Invariant_Procedure): New attribute
(Has_Invariants): New flag
(Has_Inheritable_Invariants): New flag
(OK_To_Reference): New flag
Minor code reorganization (use Next_Rep_Item function)
* einfo.ads (Invariant_Procedure): New attribute
(Has_Invariants): New flag
(Has_Inheritable_Invariants): New flag
(OK_To_Reference): New flag
* exp_ch3.adb (Expand_N_Object_Declaration): Add check for invariant
* exp_ch4.adb (Expand_N_Type_Conversion): Check invariant on type
conversion. Minor reformatting.
* exp_util.ads, exp_util.adb (Make_Invariant_Call): New procedure.
* opt.ads (List_Inherited_Aspects): New name for List_Inherited_Pre_Post
* par-prag.adb: Add dummy entry for pragma Invariant.
* sem_ch13.adb (Build_Invariant_Procedure): New procedure
(Analyze_Aspect_Specification): Add support for Invariant aspect
* sem_ch13.ads (Build_Invariant_Procedure): New procedure
* sem_ch3.adb (Build_Derived_Type): Propagate invariant information
(Process_Full_View): Deal with invariants, building invariant procedure
Minor reformatting
* sem_ch6.adb (Process_PPCs): Add processing of invariants
* sem_ch7.adb (Analyze_Package_Specification): Build invariant
procedures.
* sem_prag.adb: Implement pragma Invariant.
* sem_res.adb (Resolve_Entity_Name): Allow type reference if
OK_To_Reference set.
* sem_warn.adb (List_Inherited_Aspects): New name for
List_Inherited_Pre_Post.
* snames.ads-tmpl: Add entries for pragma Invariant.
* treepr.adb (Print_Entity_Information): Add handling of Field29.
* usage.adb: Warning .l/.L applies to invariant as well as pre/post.
From-SVN: r165694
2010-10-19 Javier Miranda <miranda@adacore.com>
* par-ch4.adb: Update documentation of Ada 2012 syntax rules for
membership test.
2010-10-19 Bob Duff <duff@adacore.com>
* sem_attr.adb (Eval_Attribute): Implement Max_Alignment_For_Allocation
attribute.
* exp_attr.adb (Expand_N_Attribute_Reference): Add
Attribute_Max_Alignment_For_Allocation to the case statement.
* snames.ads-tmpl (Name_Max_Alignment_For_Allocation,
Attribute_Max_Alignment_For_Allocation): New attribute name.
2010-10-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (OK_For_Limited_Init_In_05): a call to an access to
parameterless function appears syntactically as an explicit dereference.
2010-10-19 Thomas Quinot <quinot@adacore.com>
* sem_ch8.adb, sem_ch12.adb, opt.ads, sem_ch6.adb, sem_res.adb,
i-cexten.ads, exp_disp.adb, exp_ch4.adb, exp_ch9.adb: Minor reformatting
2010-10-19 Thomas Quinot <quinot@adacore.com>
* sem_util.adb (Collect_Primitive_Operations): A function with an
anonymous access result designating T is a primitive operation of T.
From-SVN: r165692
* config/rx/rx.c (rx_function_value): Small integer types are
promotes to SImode.
(rx_promote_function_mode): New function.
(TARGET_PROMOTE_FUNCTION_MODE): Define.
From-SVN: r165690
2010-10-19 Tristan Gingold <gingold@adacore.com>
* init.c: On Alpha/VMS, only adjust PC for HPARITH.
2010-10-19 Tristan Gingold <gingold@adacore.com>
* sem_attr.adb (Eval_Attribute): Handle Attribute_Ref, which can be
evaluated on VMS.
2010-10-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Check_Generic_Child_Unit): Handle properly the case of
an instantiation of a renaming of the implicit generic child that
appears within an instance of its parent.
2010-10-19 Thomas Quinot <quinot@adacore.com>
* exp_ch9.adb: Minor reformatting.
* einfo.adb, einfo.ads, atree.adb, atree.ads, exp_dist.adb, atree.h:
(Referenced_Object): Remove unused entity attribute.
(Direct_Primitive_Operations): Move to Elist10, this is set for all
tagged types, including synchronous ones, so can't use field15 which is
used as Storage_Size_Variable for task types and Entry_Bodies_Array for
protected types.
(Add_RACW_Primitive_Declarations_And_Bodies): Remove bogus guard
against Concurrent_Types (we must handle the case of a RACW designating
a class-wide private synchronous type).
Use Direct_Primitive_Operations, not Primitive_Operations, since we
really want the former.
2010-10-19 Bob Duff <duff@adacore.com>
* sem_ch8.adb (Pop_Scope): Change "return;" to "raise Program_Error;".
2010-10-19 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_Set_Membership.Make_Cond): Add missing support
for N_Range nodes.
From-SVN: r165689
* ipa.c (cgraph_externally_visible_p): Handle externally visible and
preserve flags before trying to guess on visibility.
(varpool_externally_visible_p): New function.
(function_and_variable_visibility): Use it.
From-SVN: r165669
In gcc/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented parsing @synthesize and @dynamic for Objective-C.
* c-parser.c (c_parser_external_declaration): Recognize
RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
(c_parser_objc_at_synthesize_declaration): New.
(c_parser_objc_at_dynamic_declaration): New.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_class_declaration): After finding an
error, parse the whole declaration then reset parser->error.
In gcc/cp/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented parsing @synthesize and @dynamic for Objective-C++.
* parser.c (cp_parser_objc_method_definition_list): Recognize
RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
(cp_parser_objc_at_dynamic_declaration): New.
(cp_parser_objc_at_synthesize_declaration): New.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_identifier_list): Check the return
value of cp_parser_identifier and react if it is error_mark_node.
In gcc/objc/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented parsing @synthesize and @dynamic for
Objective-C/Objective-C++.
* objc-act.c (objc_add_synthesize_declaration): New.
(objc_add_dynamic_declaration): New.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (lookup_and_install_protocols): Return NULL if passed
error_mark_node.
In gcc/testsuite/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented parsing @synthesize and @dynamic for
Objective-C/Objective-C++.
* objc.dg/property/dynamic-1.m: New.
* objc.dg/property/synthesize-1.m: New.
* obj-c++.dg/property/dynamic-1.mm: New.
* obj-c++.dg/property/synthesize-1.mm: New.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/at-class-1.m: New.
* objc.dg/at-class-1.mm: New.
From-SVN: r165667
In gcc/objc/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2006-03-10 Fariborz Jahanian <fjahanian@apple.com>
Radar 4407151
* objc/objc-act.c (objc_is_class_name): template parameter is not
an objective class name.
(objc_generate_cxx_cdtors): Check for the null
objc_implementation_context.
In gcc/testsuite/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2006-01-17 Fariborz Jahanian <fjahanian@apple.com>
Radar 4407151
* obj-c++.dg/template-7.mm: New.
From-SVN: r165657
In gcc/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
* c-parser.c (c_parser_objc_type_name): Adapted to new parser the
following Objective-C change:
2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
Radar 4301047
* c-parse.in (objc_quals): Build objc qualifier list same way
as gcc-3.3
In gcc/testsuite/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/proto-qual-1.m: Adjust test for GNU runtime to match
bugfix.
From-SVN: r165656
In gcc/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
* c-parser.c (c_parser_typeof_specifier): Adapted to new parser
the following Objective-C change:
2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4204796
* c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
'volatilized' type used in a typeof operator.
In gcc/c-family/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
Radar 4330422
* c-common.h (objc_non_volatilized_type): New declaration
* stub-objc.c (objc_non_volatilized_type): New stub.
In gcc/cp/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from apple/trunk branch on FSF servers.
2005-03-01 Fariborz Jahanian <fjahanian@apple.com>
Radar 4451818
* call.c (standard_conversion, implicit_conversion): Ignore
'volatile' attribute of artificially volatized type in objc when
evaluating various conversion weights.
2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
Radar 4330422
* typeck.c (comp_ptr_ttypes_real): Remove the hack. un-volatize the
artiificially 'volatized' type before doing pointer comparison.
In gcc/objc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
Radar 4330422
* objc/objc-act.c (objc_non_volatilized_type): New
2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4204796
* objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
types with proper attribute set and correctly.
(objc_volatilize_decl): Remove unneeded code.
(objc_type_quals_match): Use the new attribute to check on
'volatilzed' type.
(hash_init): removed unneeded code.
In gcc/testsuite/:
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-03-01 Fariborz Jahanian <fjahanian@apple.com>
Radar 4451818
* obj-c++.dg/try-catch-16.mm: New.
* obj-c++.dg/try-catch-17.mm: New.
2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
Radar 4330422
* obj-c++.dg/try-catch-15.mm: New
2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4204796
* obj-c++.dg/try-catch-12.mm: New
* obj-c++.dg/try-catch-13.mm: New
* obj-c++.dg/try-catch-14.mm: New
* objc.dg/try-catch-11.m: New
* objc.dg/try-catch-12.m: New
* objc.dg/try-catch-13.m: New
From-SVN: r165654
* tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
* tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
rewrite modelled on gimple_purge_dead_eh_edges.
(gimple_purge_all_dead_abnormal_call_edges): New function.
* tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
directly instead of through gimple_purge_dead_abnormal_call_edges.
* tree-ssa-pre.c (need_ab_cleanup): New static variable.
(eliminate): Set bit in need_ab_cleanup for the basic block if we have
removed AB side-effects from one of its statements.
(init_pre): Initialize need_ab_cleanup.
(fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
are set in need_ab_cleanup. Free need_ab_cleanup afterward.
From-SVN: r165646
2010-10-18 Bob Duff <duff@adacore.com>
* sinfo.ads, sinfo.adb: Modify comment about adding fields to be more
correct, and to be in a more convenient order.
(Default_Storage_Pool): New field of N_Compilation_Unit_Aux, for
recording the Default_Storage_Pool for a parent library unit.
* einfo.ads (Etype): Document the case in which Etype can be Empty.
* sem_prag.adb (Pragma_Default_Storage_Pool): Analyze the new
Default_Storage_Pool pragma.
* sem.ads (Save_Default_Storage_Pool): Save area for push/pop scopes.
* gnat_ugn.texi: Document Default_Storage_Pool as a new configuration
pragma.
* freeze.adb (Freeze_Entity): When freezing an access type, take into
account any Default_Storage_Pool pragma that applies. We have to do
this at the freezing point, because up until that point, a Storage_Pool
or Storage_Size clause could occur, which should override the
Default_Storage_Pool.
* par-prag.adb: Add this pragma to the list of pragmas handled entirely
during semantics.
* sem_ch8.adb (Push_Scope, Pop_Scope): Save and restore the
Default_Storage_Pool information.
* opt.ads (Default_Pool, Default_Pool_Config): New globals for recording
currently-applicable Default_Storage_Pool pragmas.
* opt.adb: Save/restore the globals as appropriate.
* snames.ads-tmpl (Name_Default_Storage_Pool,
Pragma_Default_Storage_Pool): New pragma name.
2010-10-18 Vincent Celier <celier@adacore.com>
* make.adb (Switches_Of): Put the spec and body suffix in canonical
case.
From-SVN: r165637
2010-10-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): If subprogram is at the
library level, the pre/postconditions must be treated as global
declarations, i.e. placed on the Aux_Decl nodes of the compilation unit.
* freeze.adb (Freeze_Expression): If the expression is at library level
there is no enclosing record to check.
2010-10-18 Javier Miranda <miranda@adacore.com>
* sem_ch3.ads (Find_Type_Name): Add documentation.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Code cleanup because the
propagation of the class-wide entity is now done by routine
Find_Type_Name to factorize this code.
(Analyze_Private_Extension_Declaration): Handle private type that
completes an incomplete type.
(Tag_Mismatch): Add error message for tag mismatch in a private type
declaration that completes an incomplete type.
(Find_Type_Name): Handle completion of incomplete type by means of
a private declaration. Generate an error if a tagged incomplete type
is completed by an untagged private type.
* sem_ch7.adb (New_Private_Type): Handle private type that completes an
incomplete type.
* einfo.ads (Full_View): Add documentation.
2010-10-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Formal_Package_Declaration): If the package is
a renaming, generate a reference for it before analyzing the renamed
entity, to prevent spurious warnings.
From-SVN: r165636
2010-10-18 Jose Ruiz <ruiz@adacore.com>
* adaint.c (__gnat_pthread_setaffinity_np,
__gnat_pthread_attr_setaffinity_np): Remove wrappers, no longer needed.
* s-osinte-linux.ads (pthread_setaffinity_np,
pthread_attr_setaffinity_np): Remove use of wrappers.
* s-taprop-linux.adb (Create_Task, Initialize): Restore check to verify
whether the affinity functionality is available in the OS.
* gcc-interface/utils.c: Set TREE_STATIC on functions only when there
are defined.
From-SVN: r165635
2010-10-18 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb: Minor reformatting.
* gnat_ugn.texi, ug_words: Add missing entries, fix typos.
2010-10-18 Emmanuel Briot <briot@adacore.com>
* g-comlin.adb (Is_In_Config): When the switch accepts either a space
or equal, we output an equal every time.
2010-10-18 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Entry_Call): Handle call to an entry family
member when pre/post conditions are present.
* exp_ch9.adb (Build_PPC_Wrapper): The PPC_Wrapper for an entry family
includes an index parameter, and the name of the enclosed entry call is
an indexed component.
From-SVN: r165634