In gcc/objc/:
2011-04-13 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (build_keyword_selector): Use get_identifier_with_length
instead of get_identifier.
From-SVN: r172360
In gcc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_initelt): Updated call to
objc_build_message_expr.
(c_parser_postfix_expression): Likewise.
In gcc/c-family/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-objc.h (objc_build_message_expr): Updated prototype.
* stub-objc.c (objc_build_message_expr): Likewise.
In gcc/objc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_message_expr): Accept two arguments
instead of one so that callers can simply pass the arguments
without having to create a temporary chain to hold them.
In gcc/cp/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_message_expression): Updated call
to objc_build_message_expr.
From-SVN: r172338
In gcc/objc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (comp_proto_with_proto): Do not create and use
inefficient temporary argument lists. Compare the arguments
directly. (match_proto_with_proto): Removed; incorporated into
comp_proto_with_proto ().
From-SVN: r172337
In gcc/objc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (printable_ivar_name): New.
(add_instance_variable): Call printable_ivar_name() when an error
message needs to be printed. Do not prepare the instance variable
for printing unless there is an actual error.
From-SVN: r172328
In gcc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_lex_one_token): Rewritten conditional used when
compiling Objective-C to be more efficient.
In gcc/objc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
avoid calling identifier_global_value() multiple times.
From-SVN: r172327
* doc/tm.texi.in: Document C target hooks as separate from general
target hooks.
* doc/tm.texi: Regenerate.
* genhooks.c (struct hook_desc): Add docname field.
(HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
docname field.
(hook_array): Include c-target.def.
(emit_documentation): Use docname field in output.
(emit_init_macros): Take docname argument. Only emit definitions
for hooks matching docname.
(main): Expect additional arguments in all cases. Pass argument
to emit_init_macros.
* target.def: Move initial macro definitions and comments to
target-hooks-macros.h.
(gcc_targetcm): Move to c-family/c-target.def.
* target.h (targetcm): Move declaration to c-family/c-target.h.
* targhooks.c (default_handle_c_option): Move to
c-family/c-opts.c.
* targhooks.h (default_handle_c_option): Move declaration to
c-family/c-common.h.
* target-hooks-macros.h: New file.
* config.gcc (target_has_targetcm): Define and use to add to
c_target_objs and cxx_target_objs.
* config/default-c.c: New file.
* config/darwin-c.c: Include c-target.h and c-target-def.h instead
of target.h and target-def.h.
(TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
(darwin_objc_construct_string, darwin_cfstring_ref_p,
darwin_check_cfstring_format_arg): Make static.
(TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
TARGET_STRING_OBJECT_REF_TYPE_P,
TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
* config/darwin-protos.h (darwin_objc_construct_string,
darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
declare.
* config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
TARGET_STRING_OBJECT_REF_TYPE_P,
TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM):
Remove.
* config/t-darwin (darwin-c.o): Update dependencies.
* system.h (TARGET_HAS_TARGETCM): Poison.
* Makefile.in (TARGET_H): Update.
(TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
(c-family/c-format.o, c-family/c-opts.o): Update dependencies.
(default-c.o): New target.
(s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
(c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New
targets.
(s-tm-texi): Pass -d option to genhooks. Also test timestamp on
c-target.def.
(build/genhooks.o): Update dependencies.
c-family:
* c-target-def.h: New file.
* c-target.def: New file.
* c-target.h: New file.
* c-common.c (targetcm): Don't define here.
* c-common.h (default_handle_c_option): Declare.
* c-format.c: Include c-target.h instead of target.h.
* c-opts.c: Include c-target.h instead of target.h. Explicitly
include tm.h.
(default_handle_c_option): Move from targhooks.c.
objc:
* objc-act.c: Include c-target.h instead of target.h.
* Make-lang.in (objc/objc-act.o): Update dependencies.
From-SVN: r172035
cp:
* lang-specs.h: Match -save-temps* instead of -save-temps.
objc:
* lang-specs.h: Match -save-temps* instead of -save-temps.
objcp
* lang-specs.h: Match -save-temps* instead of -save-temps.
From-SVN: r170715
In gcc/objc/:
2011-01-17 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47314
* objc-act.c (finish_objc): When calling check_duplicates to check
duplicated instance methods, set 'is_class' to 0, not 1.
In gcc/testsuite/:
2011-01-17 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47314
* objc.dg/selector-warn-1.m: New.
* obj-c++.dg/selector-warn-1.mm: New.
From-SVN: r168934
2011-01-14 Ben Elliston <bje@au.ibm.com>
* objc-act.c (generate_struct_by_value_array): Do not output a
definition for struct_forward_array.
From-SVN: r168823
In gcc/objc/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
lists. Check them two-ways to fix comparisons when one protocol
implements the other one, or when one list contains duplicated
protocols.
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/method-conflict-3.m: New.
* objc.dg/method-conflict-4.m: New.
* obj-c++.dg/method-conflict-3.m: New.
* obj-c++.dg/method-conflict-4.mm: New.
From-SVN: r168356
In gcc/objc/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_method): When emitting an error because a
method with the same name but conflicting types is found in the
same class or category interface, print a note with the location
of the original method. Also, improved the error message to
clearly state that the conflict is due to conflicting types, and
produce it for protocols as well. Emit an error if two identical
methods are declared in a protocol, but one is @required and the
other one is @optional. When
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/class-extension-3.m: Updated.
* objc.dg/method-1.m: Updated.
* objc.dg/method-conflict-1.m: New.
* objc.dg/method-conflict-2.m: New.
* obj-c++.dg/class-extension-3.mm: Updated.
* obj-c++.dg/method-8.mm: Updated.
* obj-c++.dg/method-conflict-1.mm: New.
* obj-c++.dg/method-conflict-2.mm: New.
From-SVN: r168350
In gcc/objc/:
2010-12-30 Nicola Pero <nicola@nicola.brainstorm.co.uk>
* objc-act.c (start_class): Warn when a class attribute is
ignored.
(objc_declare_protocols): Warn when a protocol attribute in a
protocol forward-declaration is ignored.
(start_protocol): Warn when a protocol attribute is ignored.
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/attributes/class-attribute-3.m: New.
* objc.dg/attributes/proto-attribute-4.m: New.
* obj-c++.dg/attributes/class-attribute-3.mm: New.
* obj-c++.dg/attributes/proto-attribute-4.mm: New.
From-SVN: r168337
In gcc/objc/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_set_method_opt): Tidy up error messages. In
particular, explicitly mention whether the error is due to the
@optional or @required keyword instead of mentioning
"@optional/@required".
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/enhanced-proto-2.m: Updated.
* obj-c++.dg/enhanced-proto-2.mm: Updated.
From-SVN: r168327
In gcc/objc/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47118
* objc-act.c (objc_build_synchronized): Check the argument of
@synchronized and emit an appropriate error if it is not a valid
Objective-C object. Deal gracefully with that case. Updated
comments and variable names.
In gcc/testsuite/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47118
* objc.dg/sync-3.m: New.
* obj-c++.dg/sync-3.mm: New.
From-SVN: r168326
In gcc/c-family/:
2010-12-29 Nicola Pero <nicola@nicola.brainstorm.co.uk>
PR objc/47075
* c-objc.h (objc_finish_message_expr): Added argument to
prototype.
In gcc/objc/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47075
* objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
* objc-tree.def (PROPERTY_REF): Increased the number of operands
from 3 to 4.
* objc-act.c (objc_finish_message_expr): Added optional argument
allowing to return the deprecated method prototype for deprecated
methods, instead of immediately emitting the deprecation warning.
(objc_maybe_build_component_ref): Do not warn for a deprecated
property. When building the getter call, get the deprecated
method prototype from objc_finish_message_expr() and put it into
the PROPERTY_REF.
(objc_build_class_component_ref): Same change.
(finish_class): Mark the getter and setter as deprecated if they
are generated from a deprecated property.
(objc_gimplify_property_ref): If the getter is deprecated, emit a
deprecation warning.
(objc_build_setter_call, objc_build_message_expr,
objc_finish_foreach_loop): Updated call to
objc_finish_message_expr.
In gcc/objcp/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objcp-lang.c (objcp_tsubst_copy_and_build): Update call to
objc_finish_message_expr.
In gcc/testsuite/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47075
* objc.dg/property/at-property-deprecated-1.m: Updated.
* objc.dg/property/at-property-deprecated-2.m: New.
* objc.dg/property/dotsyntax-deprecated-1.m: New.
* obj-c++.dg/property/at-property-deprecated-1.mm: Updated.
* obj-c++.dg/property/at-property-deprecated-2.mm: New.
* obj-c++.dg/property/dotsyntax-deprecated-1.mm: New.
From-SVN: r168315
In gcc/objc/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47076
* objc-act.c (lookup_protocol): Added 'definition_required'
argument. If 'definition_required', and the protocol is not
defined, emit a warning.
(objc_declare_protocols): Updated call to lookup_protocol.
(start_protocol): Same change.
(check_protocol_recursively): Same change.
(objc_build_protocol_expr): Same change.
(lookup_and_install_protocols): Added definition_required argument.
Pass it to lookup_protocol.
(objc_get_protocol_qualified_type): Updated call to
lookup_and_install_protocols.
(start_class): Updated calls to lookup_and_install_protocols; pass
true to 'definition_required' to get the warnings.
(start_protocol): Updated calls to lookup_and_install_protocols.
In gcc/testsuite/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47076
* objc.dg/protocol-forward-1.m: New.
* obj-c++.dg/protocol-forward-1.mm: New.
* objc.dg/attributes/proto-attribute-2.m: Updated.
* objc.dg/class-protocol-1.m: Updated.
* obj-c++.dg/attributes/proto-attribute-2.mm: Updated.
* obj-c++.dg/class-protocol-1.mm: Updated.
From-SVN: r168307
In gcc/objc/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_start_category_interface): Produce an error if
a class extension is found after the class @implementation.
In gcc/testsuite/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/class-extension-4.m: New.
* obj-c++.dg/class-extension-4.mm: New.
From-SVN: r168294
In gcc/testsuite/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47073
* objc.dg/incomplete-type-1.m: New test.
In gcc/objc/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47073
* objc-act.c (encode_method_prototype): Fixed both location and
format string of error "type %qT does not have a known size".
From-SVN: r168285
In gcc/:
2010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_class_definition): Recognize
Objective-C 2.0 class extensions.
In gcc/cp/:
2010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_superclass_or_category): Recognize
Objective-C 2.0 class extensions. Added iface_p and
is_class_extension arguments.
(cp_parser_objc_class_interface): Updated call to
cp_parser_objc_superclass_or_category.
(cp_parser_objc_class_implementation): Same change.
In gcc/objc/:
2010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_in_class_extension): New.
(objc_start_category_interface): If -fobjc-std=objc1
was specified, produce an error if a class extension is used.
(objc_finish_interface): Reset objc_in_class_extension to false.
(objc_add_property_declaration): Allow a class extension to extend
readonly properties in the main @interface to be readwrite.
(start_class): Added code to deal with class extensions. In that
case, return the existing interface after adding any additional
protocols to it and setting objc_in_class_extension to true.
(continue_class): If in a class extension, do not generate the
instance variable template.
In gcc/testsuite/:
2010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/class-extension-1.m: New.
* objc.dg/class-extension-2.m: New.
* objc.dg/class-extension-3.m: New.
* objc.dg/property/at-property-26.m: New.
* objc.dg/property/at-property-27.m: New.
* objc.dg/property/at-property-28.m: New.
* obj-c++.dg/class-extension-1.mm: New.
* obj-c++.dg/class-extension-2.mm: New.
* obj-c++.dg/class-extension-3.mm: New.
* obj-c++.dg/property/at-property-26.mm: New.
* obj-c++.dg/property/at-property-27.mm: New.
* obj-c++.dg/property/at-property-28.mm: New.
From-SVN: r167680
In gcc/objc/:
2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_throw_stmt): Check that the argument of
@throw is an object and emit an error if not.
In gcc/testsuite/:
2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/exceptions-7.m: New.
* obj-c++.dg/exceptions-7.mm: New.
* obj-c++.dg/exceptions-3.mm: Adjust for new C++ messages.
* obj-c++.dg/exceptions-5.mm: Same change.
From-SVN: r167615
In gcc/objc/:
2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
error() when printing an error about the iterating variable or
collection not being an object.
In gcc/testsuite/:
2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/foreach-6.m: Updated location of error messages.
* objc.dg/foreach-7.m: Same change.
From-SVN: r167610
In gcc/:
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
of c_process_expr_stmt() for the iterating and collection
expressions of an Objective-C fast enumeration loop.
In gcc/objc/:
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_finish_foreach_loop): Mark the
object_expression as used.
In gcc/testsuite/:
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/foreach-8.m: New.
From-SVN: r167518
In gcc/:
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* c-family/c-common.h: Removed the declarations of all the objc_
callbacks, and moved them into c-objc.h. Removed
objc_ivar_visibility_kind and moved it into c-objc.h.
* c-family/c-objc.h: New file.
* c-family/c-common.c: Include c-objc.h.
* c-family/c-format.c: Same change.
* c-family/stub-objc.c: Same change.
* c-decl.c: Include c-family/c-objc.h.
* c-parser.c: Same change.
* c-typeck.c: Same change.
* c-config-lang.in (gtfiles): Added c-family/c-objc.h.
* Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
(c-parser.o): same change.
(c-typeck.o): Same change.
(c-family/c-format.o): Same change.
(c-family/stub-objc.o): Same change.
(c-family/c-common.o): Same change.
(PLUGIN_HEADERS): Added c-family/c-objc.h.
In gcc/cp/:
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* call.c: Include c-family/c-objc.h.
* decl.c: Same change.
* decl2.c: Same change.
* error.c: Same change.
* lex.c: Same change.
* parser.c: Same change.
* pt.c: Same change.
* semantics.c: Same change.
* typeck.c: Same change.
* Make-lang.in (cp/decl.o): Depend on c-family/c-objc.h.
(cp/decl2.o): Same change.
(cp/call.o): Same change.
(cp/error.o): Same change.
(cp/lex.o): Same change.
(cp/parser.o): Same change.
(cp/pt.o): Same change.
(cp/semantics.o): Same change.
(cp/typeck.o): Same change.
* config-lang.in (gtfiles): Added c-family/c-objc.h.
In gcc/objc/:
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c: Include c-family/c-objc.h.
* objc-lang.c: Same change.
* Make-lang.in (objc/objc-act.o): Depend on
c-family/c-objc.h.
(objc/objc-lang.o): Same change.
* config-lang.in (gtfiles): Added c-family/c-objc.h.
In gcc/objcp/:
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* config-lang.in (gtfiles): Added c-family/c-objc.h.
* Make-lang.in (objcp/objcp-act.o): Depend on
c-family/c-objc.h.
(objcp/objcp-lang.o): Same change.
(objcp/objcp-decl.o): Same change.
* objcp-lang.c: Include c-family/c-objc.h.
* objcp-decl.c: Same change.
From-SVN: r167481
In gcc/objc/:
2010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_throw_stmt): Return error_mark_node and
not NULL_TREE when a @throw is used outside of a @catch block.
In gcc/cp/:
2010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_throw_statement): Use
cp_parser_expression, not cp_parser_assignment_expression, to
parse the argument of a @throw.
In gcc/testsuite/:
2010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/exceptions-6.m: New.
* obj-c++.dg/exceptions-6.mm: New.
From-SVN: r167364
In gcc/objc/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (start_class): When a class is reimplemented,
generate an error and avoid adding the class to the list of
implemented classes again, but do not return error_mark_node.
In gcc/testsuite/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/duplicate-class-1.m: New.
* obj-c++.dg/duplicate-class-1.mm: New.
From-SVN: r167270
In gcc/objc/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
is passed as argument.
(objc_begin_catch_clause): Added code to deal with an
error_mark_node or NULL_TREE argument. Improved checks for
invalid arguments. Added code to traverse typedefs.
In gcc/testsuite/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/exceptions-1.m: New.
* objc.dg/exceptions-2.m: New.
* objc.dg/exceptions-3.m: New.
* objc.dg/exceptions-4.m: New.
* objc.dg/exceptions-5.m: New.
* obj-c++.dg/exceptions-1.mm: New.
* obj-c++.dg/exceptions-2.mm: New.
* obj-c++.dg/exceptions-3.mm: New.
* obj-c++.dg/exceptions-4.mm: New.
* obj-c++.dg/exceptions-5.mm: New.
In gcc/cp/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_try_catch_finally_statement): Parse
@catch(...) and pass NULL_TREE to objc_begin_catch_clause() in
that case. Improved error recovery. Reorganized code to be
almost identical to c_parser_objc_try_catch_finally_statement.
In gcc/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_try_catch_statement): Renamed to
c_parser_objc_try_catch_finally_statement for consistency with the
C++ parser. Parse @catch(...) and pass NULL_TREE to
objc_begin_catch_clause() in that case. Improved error recovery.
Reorganized code to be almost identical to
cp_parser_objc_try_catch_finally_statement.
From-SVN: r167233
In gcc/objc/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_demangle): Return immediately if the string is
too short. Detect names that do not need demangling, and return
them unchanged.
From-SVN: r167231
In gcc/objc/:
2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented optional properties.
* objc-act.h (PROPERTY_OPTIONAL): New.
* objc-act.c (objc_add_property_declaration): Set
PROPERTY_OPTIONAL if appropriate.
(finish_class): When generating definitions of setter and getter
methods associated with a property for a protocol, mark them as
optional if the property is optional.
(maybe_make_artificial_property_decl): Added 'getter_name'
argument. Set PROPERTY_OPTIONAL.
(objc_maybe_build_component_ref): Updated calls to
maybe_make_artificial_property_decl. Added code for optional,
readonly properties.
(objc_build_class_component_ref): Updated call to
maybe_make_artificial_property_decl.
In gcc/testsuite/:
2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/at-property-24.m: New.
* objc.dg/property/at-property-25.m: New.
* obj-c++.dg/property/at-property-24.mm: New.
* obj-c++.dg/property/at-property-25.mm: New.
From-SVN: r167197
In gcc/objc/:
2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_struct): Fixed loops that save and
restore TYPE_OBJC_INFO to iterate over all variants of the type; a
special case for the current type is then no longer required.
Duplicate TYPE_LANG_SPECIFIC for each type before restoring
TYPE_OBJC_INFO.
(objc_get_protocol_qualified_type): Updated comments.
In gcc/testsuite/:
2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/protocol-qualifier-1.m: New.
* objc.dg/protocol-qualifier-2.m: New.
* obj-c++.dg/protocol-qualifier-1.mm: New.
* obj-c++.dg/protocol-qualifier-2.mm: New.
From-SVN: r167195
In gcc/objc/:
2010-11-25 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
after finish_struct, not before, otherwise it may be wiped out by
it. This fixes spurious warnings when a class has more than 15
instance variables.
In gcc/testsuite/:
2010-11-25 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/ivar-problem-1.m: New.
* obj-c++.dg/ivar-problem-1.mm: New.
From-SVN: r167151
In gcc/objc/:
2010-11-23 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/24358
* lang-specs.h: Added objective-c-cpp-output. Mapped .mi to
objective-c-cpp-output instead of objc-cpp-output. Print a
deprecation note every time objc-cpp-output is requested.
In gcc/objcp/:
2010-11-23 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/24358
* lang-specs.h: Print a deprecation note every time
objc++-cpp-output is requested.
From-SVN: r167073
In gcc/objc/:
2010-11-22 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/41108
* objc-act.c (objc_generate_write_barrier): Added assert to make sure
this function is only called with the next runtime.
From-SVN: r167054
In gcc/objc/:
2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_start_class_interface): Do not warn that class
attributes are unimplemented. Pass the attributes to start_class.
(objc_start_category_interface): Updated call to start_class.
(objc_start_class_implementation): Same change.
(objc_start_category_implementation): Same change.
(objc_build_class_component_ref): Warn if the class is deprecated.
(build_private_template): Mark the template as deprecated if the
class is deprecated.
(start_class): Added 'attributes' argument. Emit a warning if
using a deprecated class as superclass of a class, or original
class of a category. Recognize the 'deprecated' attribute when
starting and interface, and mark the interface with
TREE_DEPRECATED if present. Store attributes in the interface.
In gcc/testsuite/:
2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/attributes/class-attribute-1.m: Rewritten.
* objc.dg/attributes/class-attribute-2.m: Same change.
* obj-c++.dg/attributes/class-attribute-1.mm: Same change.
* obj-c++.dg/attributes/class-attribute-2.mm: Same change.
* objc.dg/fobjc-std-1.m: Updated.
* obj-c++.dg/fobjc-std-1.mm: Updated.
From-SVN: r166963
In gcc/:
2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_protocol_definition): Pass attributes
to objc_declare_protocols.
In gcc/c-family/:
2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (objc_declare_protocols): Added additional argument.
* stub-objc.c (objc_declare_protocol): Same change.
In gcc/cp/:
2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_protocol_declaration): Pass attributes
to objc_declare_protocols.
In gcc/objc/:
2010-11-19 Nicola Pero <nicola@nicola.brainstorm.co.uk>
* objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
argument. If it is 'true' and the protocol is deprecated, emit a
deprecation warning.
(objc_start_protocol): Do not warn that protocol attributes are
unimplemented. Pass the attributes to start_protocol.
(start_protocol): Added attributes argument. Recognize the
'deprecated' attribute and mark the protocols with TREE_DEPRECATED
if present. Store attributes in the protocol.
(objc_declare_protocols): Added 'attributes' argument. Recognize
the 'deprecated' attribute and mark the protocols with
TREE_DEPRECATED if present. Store attributes in the protocol.
Updated call to lookup_protocol.
(objc_build_protocol_expr): Updated call to lookup_protocol.
(check_protocol_recursively): Same change.
(lookup_and_install_protocols): Same change.
* objc-act.h: Updated comments.
In gcc/testsuite/:
2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/attributes/proto-attribute-1.m: Updated.
* objc.dg/attributes/proto-attribute-2.m: New.
* objc.dg/attributes/proto-attribute-3.m: New.
* obj-c++.dg/attributes/proto-attribute-1.mm: Updated.
* obj-c++.dg/attributes/proto-attribute-2.mm: New.
* obj-c++.dg/attributes/proto-attribute-3.mm: New.
From-SVN: r166938
In gcc/objc/:
2010-11-17 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (lookup_method_in_protocol_list): Search methods in
PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
In gcc/testsuite/:
2010-11-17 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/protocol-optional-1.m: New.
* obj-c++.dg/protocol-optional-1.mm: New.
From-SVN: r166847
In gcc/objc/:
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_setter_call): New.
(objc_maybe_build_modify_expr): Rewritten to build a compound
statement.
(objc_build_incr_expr_for_property_ref): Updated calls to
objc_maybe_build_modify_expr to call objc_build_setter_call
instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR,
...). Use convert () instead of build1 (NOP_EXPR, ...). Use
TREE_NO_WARNING on the final compound statement to silence C++
warnings.
In gcc/testsuite/:
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/dotsyntax-18.m: New.
* objc.dg/property/dotsyntax-19.m: New.
* objc.dg/property/dotsyntax-20.m: New.
* obj-c++.dg/property/dotsyntax-18.mm: New.
* obj-c++.dg/property/dotsyntax-19.mm: New.
* obj-c++.dg/property/dotsyntax-20.mm: New.
* objc.dg/property/dotsyntax-4.m: Removed some unused variables and code.
* objc.dg/property/dotsyntax-6.m: Same change.
* objc.dg/property/dotsyntax-16.m: Same change.
* objc.dg/property/dotsyntax-17.m: Same change.
* obj-c++.dg/property/dotsyntax-4.mm: Same change.
* obj-c++.dg/property/dotsyntax-6.mm: Same change.
* obj-c++.dg/property/dotsyntax-16.mm: Same change.
* obj-c++.dg/property/dotsyntax-17.mm: Same change.
* objc.dg/property/at-property-22.m: Added missing casts.
* obj-c++.dg/property/at-property-22.mm: Same change.
From-SVN: r166779
In gcc/:
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* c-typeck.c (build_unary_op): Use
objc_build_incr_expr_for_property_ref to build the pre/post
increment/decrement of an Objective-C property ref, and skip the
lvalue_or_else check in that case.
In gcc/c-family/:
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (objc_build_incr_expr_for_property_ref): New.
* stub-objc.c (objc_build_incr_expr_for_property_ref): New.
In gcc/cp/:
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* typeck.c (cp_build_unary_op): Use
objc_build_incr_expr_for_property_ref to build the pre/post
increment/decrement of an Objective-C property ref.
In gcc/objc/:
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_incr_expr_for_property_ref): New.
(objc_create_temporary_var): Moved it towards the beginning of the
file so that objc_build_incr_expr_for_property_ref can use it.
In gcc/testsuite/:
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/dotsyntax-16.m: New.
* objc.dg/property/dotsyntax-17.m: New.
* obj-c++.dg/property/dotsyntax-16.mm: New.
* obj-c++.dg/property/dotsyntax-17.mm: New.
* objc.dg/property/at-property-10.m: Uncommented using 'x++'
syntax with properties, which now works.
* obj-c++.dg/property/at-property-10.mm: Same change.
From-SVN: r166763
In gcc/objc/:
2010-11-14 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_property_declaration): Check that the decl
we received from the parser is a FIELD_DECL; reject array and
bitfield properties. Convert the warning when a property is
readonly and a setter is specified into an error. Convert errors
when a property declaration does not match a property declaration
in a superclass into warnings.
(objc_add_synthesize_declaration_for_property): Use
DECL_BIT_FIELD_TYPE to determine the type of an instance variable
if it is a bitfield. Throw an error if we are asked to synthesize
setters/getters for a bitfield instance variable but the property
is not appropriate - it must be assign and nonatomic. If the
property is readonly, allow the instance variable type to be a
specialization of the property type.
(objc_type_valid_for_messaging): Fixed returning 'false' for a
Class qualified with a protocol when the 'accept_classes' argument
is 'false'.
In gcc/testsuite/:
2010-11-14 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/at-property-21.m: New.
* objc.dg/property/at-property-22.m: New.
* objc.dg/property/at-property-23.m: New.
* objc.dg/property/synthesize-9.m: New.
* objc.dg/property/synthesize-10.m: New.
* objc.dg/property/synthesize-11.m: New.
* obj-c++.dg/property/at-property-21.mm: New.
* obj-c++.dg/property/at-property-22.mm: New.
* obj-c++.dg/property/at-property-23.mm: New.
* obj-c++.dg/property/synthesize-9.mm: New.
* obj-c++.dg/property/synthesize-10.mm: New.
* obj-c++.dg/property/synthesize-11.mm: New.
* objc.dg/property/at-property-4.m: Updated to match new compiler
where some errors have been converted into warnings and vice versa.
* objc.dg/property/at-property-16.m: Same change.
* objc.dg/property/at-property-18.m: Same change.
* objc.dg/property/property-neg-5.m: Same change.
* obj-c++.dg/property/at-property-4.mm: Same change.
* obj-c++.dg/property/at-property-16.mm: Same change.
* obj-c++.dg/property/at-property-18.mm: Same change.
* obj-c++.dg/property/property-neg-5.mm: Same change.
* obj-c++.dg/property/dynamic-2.mm: Enable tests that were
commented out because of testsuite problems; I found out that
using dg-warning instead of dg-message gets them to work.
* obj-c++.dg/property/property-neg-3.mm: Same change.
* obj-c++.dg/property/synthesize-6.mm: Same change.
* obj-c++.dg/property/at-property-5.mm: Same change.
* obj-c++.dg/property/at-property-14.mm: Same change.
* obj-c++.dg/property/at-property-18.mm: Same change.
* obj-c++.dg/property/at-property-16.mm: Same change (in this file,
some tests still do not work due to some other testsuite issue).
From-SVN: r166730
In gcc/objc/:
2010-11-13 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_get_protocol_qualified_type): detect cases
where we are asked to attach a protocol to something which is not
an Objective-C object type, and produce an error.
In gcc/testsuite/:
2010-11-13 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/compile/20060406-1.m: Fixed testcase not to try to qualify
a pointer to an arbitrary C struct with an Objective-C protocol.
Test various valid uses of typedef with Objective-C objects and
protocols instead.
* objc.dg/invalid-type-1.m: New.
* obj-c++.dg/invalid-type-1.m: New.
From-SVN: r166709
In gcc/objc/:
2010-11-11 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_property_declaration): Check that the type
of a property and of an inherited property match.
(objc_maybe_build_component_ref): Tidied up indentation and
comments.
(objc_common_type): Added new type of check (-5). If an unknown
class is involved in a comparison, try to look up its interface.
(objc_add_synthesize_declaration_for_property): Check that the
property to synthesize and the instance variable to use have the
same type.
In gcc/testsuite/:
2010-11-11 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/at-property-20.m: New.
* objc.dg/property/synthesize-8.m: New.
* obj-c++.dg/property/at-property-20.m: New.
* obj-c++.dg/property/synthesize-8.mm: New.
From-SVN: r166612
* cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start
diagnostics with lowercase letters.
* cgraphunit.c (verify_cgraph_node): Start diagnostics with
lowercase letters.
* collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
diagnostic.
* config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
lowercase letters.
* config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
Remove trailing ' ' from diagnostic.
* config/avr/avr.c (print_operand_address): Start diagnostic with
a lowercase letter and remove trailing '.'.
* config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
* config/bfin/bfin.c (bfin_option_override): Start diagnostics
with lowercase letters. Use %' in diagnostics. Remove trailing
'.' from diagnostics.
(bfin_handle_longcall_attribute): Use %' in diagnostic.
* config/cris/cris.c (cris_split_movdx,
cris_expand_pic_call_address): Start diagnostics with lowercase
letters.
(cris_asm_output_label_ref): Use %' in diagnostic.
* config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
letter.
* config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
lowercase letter.
* config/darwin-c.c (version_as_macro): Start diagnostic with a
lowercase letter.
* config/darwin-driver.c (darwin_default_min_version): Use %' in
diagnostic.
* config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
diagnostic.
* config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
diagnostics.
* config/i386/i386.c (ix86_option_override_internal): Write
diagnostic as a single sentence without trailing '.'. Use %' in
diagnostics.
(ix86_function_sseregparm, classify_argument): Start diagnostics
with lowercase letters.
(ix86_expand_prologue): Use %' in diagnostic.
* config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
diagnostic.
* config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
lowercase letter.
* config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
diagnostic.
* config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
'`' in help text.
* config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
lowercase letter.
* config/mep/mep.c (mep_validate_vliw): Start diagnostics with
lowercase letters.
* config/microblaze/microblaze.c (microblaze_handle_option):
Remove trailing '.' from diagnostic.
(print_operand): Start diagnostic with a lowercase letter.
* config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/picochip/picochip.c (picochip_option_override,
picochip_emit_save_register, picochip_function_arg,
picochip_output_label, picochip_output_internal_label,
picochip_asm_output_opcode, picochip_output_cbranch,
picochip_output_compare, picochip_output_branch,
picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
diagnostics. Start diagnostics with lowercase letters. Use %' in
diagnostics.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Use
"SPE" capitalization. Start diagnostic with a lowercase letter.
(rs6000_handle_option): Start diagnostics with lowercase letters.
(def_builtin): Remove trailing '.' from diagnostic.
(rs6000_savres_routine_name): Start diagnostic with a lowercase
letter.
* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
diagnostic.
* config/rx/rx.c (rx_handle_option): Start diagnostic with a
lowercase letter.
* config/s390/s390.c (s390_option_override) Start diagnostics with
lowercase letters. Use %' in diagnostic.
* config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
lowercase letters.
* config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
diagnostic.
* config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
diagnostic.
* config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
diagnostic.
* config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/spu/spu.c (spu_option_override): Start diagnostics with
lowercase letters. Use %qs for quoting in diagnostics.
(spu_check_builtin_parm): Remove trailing '.' from diagnostics.
Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
* config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
from diagnostic.
* convert.c (convert_to_integer, convert_to_vector): Use %' in
diagnostics.
* dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
letter and use "cannot" spelling.
* expmed.c (extract_fixed_bit_field): Start diagnostic with
lowercase letter and format as a single sentence without '.'.
* ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
Use %' in diagnostics.
* ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
Use %' in diagnostics.
* ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
Use %' in diagnostics.
* graph.c (clean_graph_dump_file): Use %' in diagnostic.
* graphite-poly.c (graphite_read_scop_file): Start diagnostics
with lowercase letters and remove tailing '.' and '\n'.
* lto-cgraph.c (input_profile_summary): Start diagnostic with
lowercase letter and remove trailing '.'.
(input_cgraph): Start diagnostics with lowercase letters and
remove trailing '\n'.
* opts.c (finish_options, common_handle_option): Start diagnostics
with lowercase letters and remove trailing '.'. Fix typo in
diagnostic.
* passes.c (position_pass): Start diagnostic with lowercase
letter.
* plugin.c (add_new_plugin, parse_plugin_arg_opt,
register_callback, try_init_one_plugin): Start diagnostics with
lowercase letters.
* reload1.c (spill_failure): Use %' in diagnostic.
(gen_reload): Start diagnostic with a lowercase letter.
* stor-layout.c (place_field): Start diagnostic with a lowercase
letter.
* toplev.c (open_auxiliary_file): Use %' in diagnostic.
* tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
Start diagnostics with lowercase letters, remove trailing '.' and
use %' in diagnostics.
* tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
(verify_ssa): Don't split diagnostic across two error calls.
Spell out "number" and use %' in diagnostic.
* value-prof.c (visit_hist, check_counter): Start diagnostics with
lowercase letters.
c-family:
* c-common.c (handle_mode_attribute): Use %' and word "signedness"
in diagnostic.
* c-opts.c (c_common_parse_file): Start diagnostics with lowercase
letter.
* c-pragma.c (handle_pragma_target, handle_pragma_optimize):
Remove trailing '.' from diagnostics.
* c.opt (Wwrite-strings_: Avoid '`' in help text.
cp:
* cvt.c (cp_convert_to_pointer): Use %' in diagnostic.
* decl.c (layout_var_decl, maybe_commonize_var, grokdeclarator):
Use %' in diagnostics.
* decl2.c (check_classfn): Use %' in diagnostic.
* init.c (build_java_class_ref): Use %' in diagnostic.
(build_delete): Remove trailing '.' from diagnostic.
* method.c (do_build_copy_assign, walk_field_subobs): Use %' in
diagnostics.
* name-lookup.c (pushdecl_maybe_friend): Use %' in diagnostic.
* parser.c (cp_parser_exception_specification_opt): Remove
trailing '.' from diagnostic.
(cp_parser_objc_interstitial_code): Use %qs for quoting in
diagnostic.
* pt.c (check_valid_ptrmem_cst_expr): Use %< and %> for quoting in
diagnostic.
* repo.c (reopen_repo_file_for_write): Use %' in diagnostic.
fortran:
* trans-array.c (gfc_trans_deferred_array): Use "front-end"
spelling in diagnostic.
* trans.c (gfc_allocate_array_with_status): Add missing space in
diagnostic.
java:
* expr.c (expand_java_field_op): Use %' in diagnostic.
* jcf-parse.c (java_parse_file): Use %' in diagnostics.
* jvspec.c (lang_specific_driver): Use %' in diagnostic.
* lang.c (java_post_options): Use %' in diagnostics.
lto:
* lto.c (lto_resolution_read): Start diagnostics with lowercase
letters and remove trailing '.'.
(lto_file_finalize): Start diagnostic with a lowercase letter.
objc:
* objc-act.c (objc_init): Use %' in diagnostic.
(objc_set_method_opt): Remove trailing '.' from diagnostic.
From-SVN: r166570
In gcc/objc/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_dynamic_declaration_for_property): Do not
search for the @property declation only in the current context,
but also in inherited properties. Do not mark the original
PROPERTY_DECL in the @interface or @protocol with
PROPERTY_DYNAMIC.
(check_methods): To check if a method is associated with a
@dynamic property, search for the property in IMPL_PROPERTY_DECL.
(check_accessible_methods): Same change.
* objc-act.h: Updated comment.
In gcc/testsuite/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/dynamic-4.m: New.
* objc.dg/property/dynamic-5.m: New.
* objc.dg/property/dynamic-6.m: New.
* obj-c++.dg/property/dynamic-4.mm: New.
* obj-c++.dg/property/dynamic-5.mm: New.
* obj-c++.dg/property/dynamic-6.mm: New.
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/dotsyntax-13.m: New.
* objc.dg/property/dotsyntax-14.m: New.
* objc.dg/property/dotsyntax-15.m: New.
* objc.dg/property/synthesize-7.m: New.
* obj-c++.dg/property/dotsyntax-13.mm: New.
* obj-c++.dg/property/dotsyntax-14.mm: New.
* obj-c++.dg/property/dotsyntax-15.mm: New.
* obj-c++.dg/property/synthesize-7.mm: New.
From-SVN: r166457
In gcc/objc/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_synthesize_declaration_for_property):
Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
checking for an existing @synthesize or @dynamic declaration.
Search for an inherited @property declaration if none is found in
the local interface. If the required instance variable does not
exist, return instead of trying to continue to prevent a compiler
crash later. Check that the instance variable is not already
being used by another @synthesize.
(objc_add_dynamic_declaration_for_property): Iterate over
IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
existing @synthesize or @dynamic declaration.
(objc_synthesize_getter): Search for the getter declaration in
protocols and superclasses as well.
(objc_synthesize_setter): Search for the setter declaration in
protocols and superclasses as well.
In gcc/testsuite/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/synthesize-3.m: New.
* objc.dg/property/synthesize-4.m: New.
* objc.dg/property/synthesize-5.m: New.
* objc.dg/property/synthesize-6.m: New.
* obj-c++.dg/property/synthesize-3.mm: New.
* obj-c++.dg/property/synthesize-4.mm: New.
* obj-c++.dg/property/synthesize-5.mm: New.
* obj-c++.dg/property/synthesize-6.mm: New.
From-SVN: r166456
In gcc/objc/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (lookup_property): When checking categories, also
check the protocols attached to each.
(objc_add_property_declaration): Determine the
PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up
error message. Search for an existing property declaration with
the same name which would be inherited from the class hiearchy,
and produce an error if it has incompatible attributes.
(check_methods): Changed second parameter. If the method is a
getter or setter for a property, do not warn if it is inherited as
opposed to implemented directly in the class.
(check_protocol): Updated calls to check_methods.
(finish_class): Do not determine the PROPERTY_SETTER_NAME and
PROPERTY_GETTER_NAME here; this is now done earlier, in
objc_add_property_declaration.
* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
In gcc/testsuite/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/at-property-5.m: Updated test.
* objc.dg/property/at-property-16.m: New.
* objc.dg/property/at-property-17.m: New.
* objc.dg/property/at-property-18.m: New.
* objc.dg/property/at-property-19.m: New.
* objc.dg/property/dotsyntax-12.m: New
* objc.dg/protocol-inheritance-1.m: New.
* objc.dg/protocol-inheritance-2.m: New.
* obj-c++.dg/property/at-property-5.mm: Updated test.
* obj-c++.dg/property/at-property-16.mm: New.
* obj-c++.dg/property/at-property-17.mm: New.
* obj-c++.dg/property/at-property-18.mm: New.
* obj-c++.dg/property/at-property-19.mm: New.
* obj-c++.dg/protocol-inheritance-1.mm: New.
* obj-c++.dg/protocol-inheritance-2.mm: New.
* obj-c++.dg/property/dotsyntax-12.mm: New.
From-SVN: r166455
In gcc/objc/:
2010-11-05 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 syntax with self and super.
* objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
(maybe_make_artificial_property_decl): Added 'implementation'
argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
looking up getters or setters for a class. If an implementation
is specified, search it as well for a getter or setter.
(objc_maybe_build_component_ref): Updated calls to
maybe_make_artificial_property_decl; added code to deal with
'self' and 'super' and with methods declared locally in the
implementation. Store the getter call expression in the
PROPERTY_REF instead of throwing it away.
(objc_build_class_component_ref): Updated calls to
maybe_make_artificial_property_decl, and store the getter call
expression in PROPERTY_REF instead of throwing it away.
(lookup_method_static): Implemented
OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
(objc_gimplify_property_ref): Do not build the getter method call
here; instead use the one stored in the PROPERTY_REF. If it's not
there, produce helpful error messages.
* objc-tree.def (PROPERTY_REF): Increased the number of operands
from 2 to 3. Updated comments.
* objc-act.h (PROPERTY_REF_GETTER_CALL): New.
In gcc/testsuite/:
2010-11-05 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 dot-syntax with self and super.
* objc.dg/property/dotsyntax-5.m: New.
* objc.dg/property/dotsyntax-6.m: New.
* objc.dg/property/dotsyntax-7.m: New.
* objc.dg/property/dotsyntax-8.m: New.
* objc.dg/property/dotsyntax-9.m: New.
* objc.dg/property/dotsyntax-10.m: New.
* objc.dg/property/dotsyntax-11.m: New.
* obj-c++.dg/property/dotsyntax-5.mm: New.
* obj-c++.dg/property/dotsyntax-6.mm: New.
* obj-c++.dg/property/dotsyntax-7.mm: New.
* obj-c++.dg/property/dotsyntax-8.mm: New.
* obj-c++.dg/property/dotsyntax-9.mm: New.
* obj-c++.dg/property/dotsyntax-10.mm: New.
* obj-c++.dg/property/dotsyntax-11.mm: New.
From-SVN: r166402
In gcc/:
2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 dot-syntax with class names.
* c-parser.c (c_parser_next_token_starts_declspecs): In
Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
(c_parser_next_token_starts_declaration): Same.
(c_parser_postfix_expression): Parse the Objective-C 2.0
dot-syntax with a class name.
In gcc/cp/:
2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 dot-syntax with class names.
* parser.c (cp_parser_primary_expression): Recognize Objective-C
2.0 dot-syntax with class names and process it.
(cp_parser_nonclass_name): Recognize Objective-C 2.0 dot-syntax
with class names.
(cp_parser_class_name): Same change.
(cp_parser_simple_type_specifier): Tidied comments.
In gcc/c-family/:
2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 dot-syntax with class names.
* c-common.h (objc_build_class_component_ref): New.
* stub-objc.c (objc_build_class_component_ref): New.
In gcc/objc/:
2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 dot-syntax with class names.
* objc-act.c (objc_build_class_component_ref): New.
In gcc/testsuite/:
2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 dot-syntax with class names.
* objc.dg/property/dotsyntax-3.m: New.
* objc.dg/property/dotsyntax-4.m: New.
* obj-c++.dg/property/dotsyntax-3.mm: New.
* obj-c++.dg/property/dotsyntax-4.mm: New.
* objc.dg/fobjc-std-1.m: Added test for warnings when the
Objective-C 2.0 dot-syntax is used with class names.
* obj-c++.dg/fobjc-std-1.mm: Same change.
From-SVN: r166333
In gcc/c-family/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
* c.opt (Wproperty-assign-default): New option.
In gcc/objc/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
category.
(objc_type_valid_for_messaging): Added 'accept_classes' argument;
if set to 'true', return 'true' for Class objects. Do not remove
more than on pointer indirection.
(objc_add_property_declaration): Only warn about 'assign'
semantics for Objective-C objects if warn_property_assign_default;
and do not warn if the property is readonly or if the type is a Class.
(objc_finish_foreach_loop): Updated calls to
objc_type_valid_for_messaging.
In gcc/testsuite/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/dynamic-2.m: Updated for the fact that @dynamic
is now allowed in categories.
* obj-c++.dg/property/dynamic-2.mm: Same change.
* objc.dg/property/dynamic-3.m: New.
* obj-c++.dg/property/dynamic-3.mm: New.
* objc.dg/property/at-property-14.m: New.
* objc.dg/property/at-property-15.m: New.
* obj-c++.dg/property/at-property-14.mm: New.
* obj-c++.dg/property/at-property-15.mm: New.
* objc.dg/foreach-6.m: Added a few more tests for valid and
invalid iterating variables and collections.
From-SVN: r166287
In gcc/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented -fobjc-std=objc1 flag.
* doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
option.
* doc/standards.texi (Standards): Updated the section on
Objective-C; mention support for Objective-C 2.0 features and the
new -fstd-objc=objc1 flag to disable them.
In gcc/c-family/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented -fobjc-std=objc1 flag.
* c.opt (fobjc-std=objc1): New option.
In gcc/objc/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented -fobjc-std=objc1 flag.
* objc-act.c (objc_start_class_interface): If attributes are
specified when flag_objc1_only is set, print an error.
(objc_start_category_interface): Same change.
(objc_start_protocol): Same change.
(objc_add_method_declaration): Same change.
(objc_start_method_definition): Same change.
(objc_build_keyword_decl): Same change.
(objc_set_method_opt): If flag_objc1_only is set, print an error.
(objc_add_property_declaration): Same change.
(objc_add_synthesize_declaration): Same change.
(objc_add_dynamic_declaration): Same change.
(objc_finish_foreach_loop): Same change.
(objc_maybe_build_component_ref): If flag_objc1_only is set,
return immediately.
In gcc/testsuite/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented -fobjc-std=objc1 flag.
* objc.dg/fobjc-std-1.m: New.
* obj-c++.dg/fobjc-std-1.mm: New.
From-SVN: r166246
In gcc/objc/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (maybe_make_artificial_property_decl): New.
(objc_maybe_build_component_ref): Call
maybe_make_artificial_property_decl if a property can not be
found. Do not call objc_finish_message_expr if
PROPERTY_HAS_NO_GETTER.
* objc-act.h Updated comments.
(PROPERTY_HAS_NO_GETTER): New.
(PROPERTY_HAS_NO_SETTER): New.
* objc-tree.def: Updated comment.
In gcc/testsuite/:
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/dotsyntax-1.m: New.
* objc.dg/property/dotsyntax-2.m: New.
* obj-c++.dg/property/dotsyntax-1.mm: New.
* obj-c++.dg/property/dotsyntax-2.mm: New.
From-SVN: r166237
In gcc/c-family/:
2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented format and noreturn attributes for Objective-C methods.
* c-common.c (handle_noreturn_attribute): Recognize 'noreturn'
attribute for Objective-C methods.
In gcc/objc/:
2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented format and noreturn attributes for Objective-C methods.
* objc-act.c (objc_start_method_definition): If method attributes
are specified emit a warning and ignore them.
(build_objc_method_call): Moved deprecation warnings from here ...
(objc_finish_message_expr): to here. Do not emit deprecation
warnings if the receiver is of type 'id'.
(really_start_method): Install 'deprecation' and 'noreturn'
attributes.
(objc_decl_method_attributes): Carefully filter out the list of
attributes, allowing only "noreturn", "format", "sentinel" and
"deprecated". In the case of "format", adjust the arguments.
Always process the attributes in the same way no matter if
"sentinel" is in the list or not.
In gcc/testsuite/:
2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented format and noreturn attributes for Objective-C methods.
* objc.dg/attributes/method-attribute-2.m: Updated warnings.
* objc.dg/attributes/method-deprecated-1.m: New.
* objc.dg/attributes/method-deprecated-2.m: New.
* objc.dg/attributes/method-deprecated-3.m: New.
* objc.dg/attributes/method-noreturn-1.m: New.
* objc.dg/attributes/method-sentinel-1.m: New.
* objc.dg/attributes/method-format-1.m: New.
* obj-c++.dg/attributes/method-attribute-2.mm: Updated warnings.
* obj-c++.dg/attributes/method-deprecated-1.mm: New.
* obj-c++.dg/attributes/method-deprecated-2.mm: New.
* obj-c++.dg/attributes/method-deprecated-3.mm: New.
* obj-c++.dg/attributes/method-noreturn-1.mm: New.
* obj-c++.dg/attributes/method-sentinel-1.mm: New.
* obj-c++.dg/attributes/method-format-1.mm: New.
From-SVN: r166153
In gcc/objc/:
2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_maybe_build_component_ref): Warn about using
deprecated properties.
(objc_maybe_printable_name): Support PROPERTY_DECL.
In gcc/testsuite/:
2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/at-property-deprecated-1.m: New.
* obj-c++.dg/property/at-property-deprecated-1.mm: New.
From-SVN: r166147
In gcc/objc/:
2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 property accessors.
* objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
(objc_getProperty_decl): New.
(objc_setProperty_decl): New.
(objc_copyStruct_decl): New.
(objc_getPropertyStruct_decl): New.
(objc_setPropertyStruct_decl): New.
* objc-act.c (build_objc_property_accessor_helpers): New.
(synth_module_prologue): Call
build_objc_property_accessor_helpers.
(lookup_ivar): New.
(objc_synthesize_getter): Implemented synthesizing getters that
work with properties that are not nonatomic, assign properties.
(objc_synthesize_setter): Implemented synthesizing setters that
work with properties that are not nonatomic, assign properties.
In gcc/testsuite/:
2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 property accessors.
* objc.dg/property/at-property-6.m: Use nonatomic properties to
avoid testing more complex accessors in this testcase which is not
about them.
* objc.dg/property/at-property-7.m: Same change.
* objc.dg/property/at-property-8.m: Same change.
* objc.dg/property/at-property-9.m: Same change.
* objc.dg/property/at-property-10.m: Same change.
* objc.dg/property/at-property-11.m: Same change.
* obj-c++.dg/property/at-property-6.mm: Same change.
* obj-c++.dg/property/at-property-7.mm: Same change.
* obj-c++.dg/property/at-property-8.mm: Same change.
* obj-c++.dg/property/at-property-9.mm: Same change.
* obj-c++.dg/property/at-property-10.mm: Same change.
* obj-c++.dg/property/at-property-11.mm: Same change.
* objc.dg/property/at-property-12.m: New.
* objc.dg/property/at-property-13.m: New.
* obj-c++.dg/property/at-property-12.mm: New.
* obj-c++.dg/property/at-property-13.mm: New.
From-SVN: r166143
In gcc/:
2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* c-parser.c (c_parser_objc_at_property_declaration): Removed
parsing of RID_COPIES and RID_IVAR. Updated call to
objc_add_property_declaration.
* c-typecheck.c (build_component_ref): Call
objc_maybe_build_component_ref instead of objc_build_setter_call.
Use objc_is_property_ref to improve Objective-C checks.
(cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
of objc_build_getter_call.
In gcc/c-family/:
2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* c-common.h (enum rid): Removed RID_COPIES and RID_IVAR.
(objc_add_property_declaration): Removed arguments for copies and
ivar.
(objc_build_getter_call): Renamed to
objc_maybe_build_component_ref.
(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
(objc_is_property_ref): New.
* c-common.c (c_common_reswords): Removed copies and ivar.
* stub-objc.c (objc_add_property_declaration): Removed arguments
for copies and ivar.
(objc_build_getter_call): Renamed to
objc_maybe_build_component_ref.
(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
(objc_is_property_ref): New.
In gcc/cp/:
2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* parser.c (cp_parser_objc_at_property_declaration): Removed
parsing of RID_COPIES and RID_IVAR. Updated call to
objc_add_property_declaration.
* typecheck.c (finish_class_member_access_expr): Call
objc_maybe_build_component_ref instead of objc_build_setter_call.
(cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
of objc_build_getter_call.
In gcc/objc/:
2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* objc-tree.def (PROPERTY_REF): New.
* objc-act.h: Added comments for all the PROPERTY_ macros.
(PROPERTY_NAME): Use DECL_NAME.
(PROPERTY_COPIES): Removed.
(PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
(PROPERTY_NONATOMIC): New.
(objc_property_assign_semantics): Make it a typedef.
(PROPERTY_ASSIGN_SEMANTICS): New.
(PROPERTY_DYNAMIC): New.
(PROPERTY_REF_OBJECT): New.
(PROPERTY_REF_PROPERTY_DECL): New.
* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
(in_objc_property_setter_name_context): Removed.
(objc_add_property_declaration): Removed copies and ivar arguments
and code supporting them. Fixed recovering when readonly and
setter attributes are specified. Removed support for @property in
@implementation context. Updated error message. Double-check
that a property does not have a DECL_INITIAL. Validate the
property assign semantics and emit appropriate errors and
warnings. Check for duplicate property declarations. Set
DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
PROPERTY_DECL. Do not set PROPERTY_COPIES. Set
PROPERTY_IVAR_NAME to NULL_TREE.
(objc_build_getter_call): Renamed to
objc_maybe_build_component_ref. If the property is not found in
the interface, search in the protocol list. Do not generate the
getter call; instead, build and return a PROPERTY_REF.
(objc_is_property_ref): New.
(objc_setter_func_call): Removed.
(get_selector_from_reference): Removed.
(is_property): Removed.
(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
the PROPERTY_REF. Generate an error if the property is read-only.
(build_property_reference): Removed.
(objc_finish_message_expr): Removed check to produce "readonly
property can not be set" error when
in_objc_property_setter_name_context. We now generate the error
earlier, in objc_maybe_build_modify_expr, which will only generate
the setter call if the property is readwrite.
(check_methods): Recognize dynamic properties.
(check_methods_accessible): Same change.
(objc_build_property_ivar_name): Removed.
(objc_build_property_setter_name): Dropped bool argument. Always
add the ':' at the end.
(objc_gen_one_property_datum): Removed.
(objc_process_getter_setter): Removed.
(objc_synthesize_getter): Mark 'klass' argument as unused. Use
PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the
DECL_SOURCE_LOCATION of the new method to be the same as the one
for the @synthesize. Always use PROPERTY_IVAR_NAME as it is
instead of trying to guess what it should be. Removed use of
CLASS_IVARS. Use the location of @synthesize for c_finish_return
and c_end_compound_statement.
(objc_synthesize_setter): Mark 'klass' argument as unused. Use
PROPERTY_SETTER_NAME instead of trying to guess what it should be.
Set the DECL_SOURCE_LOCATION of the new method to be the same as
the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it
is instead of trying to guess what it should be. Removed use of
CLASS_IVARS. Use the location of @synthesize for c_finish_return
and c_end_compound_statement. Emit an error and keep going,
instead of aborting, if the setter prototype does not have the
expected argument.
(objc_add_synthesize_declaration_for_property): New.
(objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
all arguments. Improved error message. Filled in the rest of the
function, which used to be a placeholder, with an actual
implementation.
(objc_add_dynamic_declaration_for_property): New.
(objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
arguments. Improved error message. Filled in the rest of the
function, which used to be a placeholder, with an actual
implementation.
(objc_gen_property_data): Rewritten.
(finish_class): Added explicit switch cases for
CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
PROTOCOL_INTERFACE_TYPE. Added a default switch case which is
gcc_unreachable. Rewritten the processing of properties, in
particular to not synthesize prototypes for getters and setters if
they already exist and to install the getter and setter names into
PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate
warnings about setter, getter and ivar property attributes.
(objc_lookup_ivar): Removed support for properties.
(objc_gimplify_property_ref): New.
(objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call
objc_gimplify_property_ref.
In gcc/testsuite/:
2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* objc.dg/property/property-neg-1.m: Updated for changes in the
syntax of @property and the implementation of
@synthesize/@dynamic.
* objc.dg/property/property-neg-2.m: Same change.
* objc.dg/property/property-neg-3.m: Same change.
* objc.dg/property/property-neg-4.m: Same change.
* objc.dg/property/property-neg-5.m: Same change.
* objc.dg/property/property-neg-7.m: Same change.
* objc.dg/property/property-1.m: Same change.
* objc.dg/property/synthesize-1.m: Same change.
* objc.dg/property/at-property-2.m: Same change.
* objc.dg/property/at-property-4.m: Same change.
* objc.dg/property/fsf-property-method-acces.m: Updated for
changes in the syntax of @property and the implementation of
@synthesize/@dynamic. Use the same code for GNU and NeXT runtime.
* objc.dg/property/fsf-property-basic.m: Same change.
* objc.dg/property/fsf-property-named-ivar.m: Same change.
* objc.dg/property/at-property-5.m: New.
* objc.dg/property/at-property-6.m: New.
* objc.dg/property/at-property-7.m: New.
* objc.dg/property/at-property-8.m: New.
* objc.dg/property/at-property-9.m: New.
* objc.dg/property/at-property-10.m: New.
* objc.dg/property/at-property-11.m: New.
* objc.dg/property/synthesize-2.m: New.
* objc.dg/property/dynamic-2.m: New.
* obj-c++.dg/property/property-neg-1.mm: Updated for changes in the
syntax of @property and the implementation of
@synthesize/@dynamic.
* obj-c++.dg/property/property-neg-2.mm: Same change.
* obj-c++.dg/property/property-neg-3.mm: Same change.
* obj-c++.dg/property/property-neg-4.mm: Same change.
* obj-c++.dg/property/property-neg-5.mm: Same change.
* obj-c++.dg/property/property-neg-7.mm: Same change.
* obj-c++.dg/property/property-1.mm: Same change.
* obj-c++.dg/property/synthesize-1.mm: Same change.
* obj-c++.dg/property/at-property-2.mm: Same change.
* obj-c++.dg/property/at-property-4.mm: Same change.
* obj-c++.dg/property/fsf-property-method-acces.mm: Updated for
changes in the syntax of @property and the implementation of
@synthesize/@dynamic. Use the same code for GNU and NeXT runtime.
* obj-c++.dg/property/fsf-property-basic.mm: Same change.
* obj-c++.dg/property/fsf-property-named-ivar.mm: Same change.
* obj-c++.dg/property/at-property-5.mm: New.
* obj-c++.dg/property/at-property-6.mm: New.
* obj-c++.dg/property/at-property-7.mm: New.
* obj-c++.dg/property/at-property-8.mm: New.
* obj-c++.dg/property/at-property-9.mm: New.
* obj-c++.dg/property/at-property-10.mm: New.
* obj-c++.dg/property/at-property-11.mm: New.
* obj-c++.dg/property/synthesize-2.mm: New.
* obj-c++.dg/property/dynamic-2.mm: New.
From-SVN: r166087
In gcc/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_at_property_declaration): Recognize
RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
Do not use objc_set_property_attr, but use local variables
instead. Detect repeated usage of setter, getter and ivar
attributes. Improved error processing when a setter name does not
end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
that the token is a keyword. Updated call to
objc_add_property_declaration.
In gcc/cp/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_at_property_declaration): Recognize
RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
Do not use objc_set_property_attr, but use local variables
instead. Detect repeated usage of setter, getter and ivar
attributes. Improved error processing when a setter name does not
end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
that the token is a keyword. Updated call to
objc_add_property_declaration.
In gcc/c-family/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (enum rid): Added RID_READWRITE, RID_ASSIGN,
RID_RETAIN, RID_COPY and RID_NONATOMIC. Updated RID_FIRST_PATTR
and RID_LAST_PATTR.
(objc_add_property_declaration): Added additional arguments.
(objc_property_attribute_kind): Removed.
(objc_set_property_attr): Removed.
* c-common.c (c_common_reswords): Added readwrite, assign, retain,
copy and nonatomic.
* stub-objc.c (objc_add_property_declaration): Added additional
arguments.
(objc_set_property_attr): Removed.
In gcc/objc/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_property_declaration): Added arguments to
pass the various property attributes that were parsed with the
property declaration. Process arguments to determine the final
property attributes and produce error messages as appropriate.
Added temporary code to keep the compiler silent about variables
set but not used - for new attributes that are only checked but
have no effect yet.
(property_readonly): Removed.
(property_setter): Removed.
(property_getter): Removed.
(property_ivar): Removed.
(property_copies): Removed.
(objc_set_property_attr): Removed.
* objc-act.h (enum property_assign_semantics): New.
In gcc/testsuite/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* obj-c.dg/property/at-property-4.m: New.
* obj-c++.dg/property/at-property-4.mm: New.
* obj-c++.dg/property/property-neg-5.m: Updated testcase for
updates in warning.
* obj-c++.dg/property/property-neg-5.mm: Updated testcase for
updates in warning.
From-SVN: r165997
In gcc/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_at_property): Renamed to
c_parser_objc_at_property_declaration. Updated calls to
objc_add_property_variable, now objc_add_property_declaration.
Code rewritten to be much more robust in recovering from syntax
errors. Added comments.
(c_parser_objc_property_attrlist): Removed.
(c_parser_external_declaration): Updated calls to
c_parser_objc_at_property, now
c_parser_objc_at_property_declaration.
(c_parser_objc_methodprotolist): Same change.
In gcc/c-family/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (objc_add_property_variable): Renamed to
objc_add_property_declaration. Added location argument.
* stub-objc.c (objc_add_property_variable): Same change.
In gcc/cp/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_property_decl): Renamed to
cp_parser_objc_struct_declaration. Return the parsed trees
instead of calling objc_add_property_variable directly. Detect
missing or invalid declspecs. Implemented attributes. Do not eat
the ';' at the end. Exit loop whenever a non-comma is parsed, not
just EOF.
(cp_parser_objc_at_property): Renamed to
cp_parser_objc_at_property_declaration. Updated calls to
objc_add_property_variable, now objc_add_property_declaration, and
to cp_parser_objc_property_decl, now
cp_parser_objc_struct_declaration. Rewritten all code to be more
robust in dealing with syntax errors, and almost identical to the
one in c_parser_objc_at_property_declaration.
(cp_parser_objc_property_attrlist): Removed.
(cp_parser_objc_method_prototype_list): Updated call to
cp_parser_objc_at_property.
(cp_parser_objc_method_definition_list): Same change.
(cp_parser_objc_class_ivars): Detect a number of invalid
declarations of instance variables and produce errors when they
are found.
In gcc/objc/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_property_variable): Renamed to
objc_add_property_declaration. Added location argument. Updated
warnings and errors to use it. Use error, not fatal_error, if a
property declaration is found outside an interface or
implementation context.
In gcc/testsuite/:
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/property/at-property-1.m: New.
* objc.dg/property/at-property-2.m: New.
* objc.dg/property/at-property-3.m: New.
* objc.dg/ivar-invalid-type-1.m: New.
* obj-c++.dg/property/at-property-1.mm: New.
* obj-c++.dg/property/at-property-2.mm: New.
* obj-c++.dg/property/at-property-3.mm: New.
* obj-c++.dg/ivar-invalid-type-1.mm: New.
* objc.dg/property/property-neg-6.m: Updated testcase for updates
in error reporting.
From-SVN: r165996
In gcc/cp/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
Removed Objective-C++ specific replacement of cxx_printable_name.
* cp-objcp-common.h: Added LANG_HOOKS_DECL_PRINTABLE_NAME, set
to cxx_printable_name for both C++ and Objective-C++.
* cp-lang.h: Removed LANG_HOOKS_DECL_PRINTABLE_NAME.
* error.c (dump_decl): For Objective-C++, call
objc_maybe_printable_name here ...
* tree.c (cxx_printable_name_internal): ... instead of here.
In gcc/objcp/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objcp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Do not define.
In gcc/objc/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_keyword_decl): Updated comments. Do not
emit a warning that method parameter attributes are unimplemented.
Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
(start_method_def): Copy attributes from each KEYWORD_DECL into
the corresponding PARM_DECL.
(objc_warn_deprecated_use): Removed.
(build_objc_method_call): Call warn_deprecated_use, not
objc_warn_deprecated_use.
(objc_maybe_printable_name): Do not try to get the identifier name
of DECLs that we don't recognize. Immediately return NULL for them.
(objc_printable_name): Removed C++-specific case, which is no
longer used. Updated comments.
In gcc/testsuite/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/attributes/method-attribute-2.m: Updated test. Method
parameter attributes are now supported.
* obj-c++.dg/attributes/method-attribute-2.m: Same change.
* objc.dg/attributes/parameter-attribute-1.m: New test.
* objc.dg/attributes/parameter-attribute-2.m: New test.
* obj-c++.dg/attributes/parameter-attribute-1.m: New test.
* obj-c++.dg/attributes/parameter-attribute-2.m: New test.
From-SVN: r165896
In gcc/cp/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
* tree.c (cxx_printable_name_internal): In Objective-C++, call
objc_maybe_printable_name.
In gcc/objc/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
(objc_demangle): Return NULL if demangling can not be done because
the string to demangle is not an Objective-C mangled method name.
Be smarter in demangling method names so that at least for methods
with no arguments we are able to almost always demangle '_' correctly.
Updated comments.
(objc_maybe_printable_name): New.
(objc_printable_name): Call objc_maybe_printable_name. If it
returns NULL, call cxx_printable_name in Objective-C++.
In gcc/testsuite/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/demangle-1.m: New test.
* obj-c++.dg/demangle-1.mm: New test.
* obj-c++.dg/demangle-2.mm: New test.
* obj-c++.dg/demangle-3.mm: New test.
In gcc/c-family/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (objc_maybe_printable_name): New.
* stub-objc.c (objc_maybe_printable_name): New.
From-SVN: r165887
2010-10-21 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (get_objc_string_decl): Use a switch instead of a
chain of ifs. Use gcc_unreachable instead of abort.
(add_objc_string): Same change.
(generate_protocol_list): Same change - twice.
(synth_id_with_class_suffix): Same change.
(build_keyword_selector): Same change - twice.
(objc_build_message_expr): Same change.
(objc_build_selector_expr): Same change.
(check_methods): Same change - and added missing gcc_unreachable
for default case.
(check_methods_accessible): Same change - twice, and added missing
gcc_unreachable for default case in one of them.
(start_class): Same change - and added missing gcc_unreachable for
default case.
(continue_class): Same change.
(objc_gen_property_data): Same change.
(finish_class): Same change.
(encode_type_qualifiers): Added missing gcc_unreachable.
(encode_type): Small code tidy up to reduce duplicated code. Use
gcc_unreachable instead of abort - twice.
(encode_gnu_bitfield): Use a switch instead of a chain of ifs -
twice. Added missing gcc_unreachable for default case - twice.
(dump_interface): Use a switch instead of a chain of ifs.
(handle_impent): Same change.
From-SVN: r165803
In gcc/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (c_parser_objc_method_type): Mark inline. Return a
bool instead of a tree.
(c_parser_objc_method_decl): Added bool argument. Updated call to
objc_build_method_signature.
(c_parser_objc_method_definition): Do not call
objc_set_method_type. Updated calls to c_parser_objc_method_type,
c_parser_objc_method_decl and objc_start_method_definition.
(c_parser_objc_methodproto): Do not call objc_set_method_type.
Updated calls to c_parser_objc_method_type,
c_parser_objc_method_decl and objc_add_method_declaration.
In gcc/c-family/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (objc_set_method_type): Removed.
(objc_add_method_declaration): Added boolean argument.
(objc_start_method_definition): Same change.
(objc_build_method_signature): Same change.
* stub-objc.c (objc_set_method_type): Removed.
(objc_add_method_declaration): Added boolean argument.
(objc_start_method_definition): Same change.
(objc_build_method_signature): Same change.
In gcc/cp/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_method_type): Mark inline. Return a
bool instead of calling objc_set_method_type.
(cp_parser_objc_method_signature): Updated calls to
cp_parser_objc_method_type and to objc_build_method_signature.
(cp_parser_objc_method_prototype_list): Updated calls to
objc_add_method_declaration. Use token->type to determine if it
is a class method or not.
(cp_parser_objc_method_definition_list): Same change.
In gcc/objc/:
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.h (objc_inherit_code): Removed.
* objc-act.c (objc_inherit_code): Removed.
(objc_set_method_type): Removed.
(objc_build_method_signature): Added is_class_method argument.
Use it instead of the global objc_inherit_code variable.
(objc_add_method_declaration): Same change.
(objc_start_method_definition): Same change.
(objc_generate_cxx_ctor_or_dtor): Updated call to
objc_start_method_definition. Do not call objc_set_method_type.
(adjust_type_for_id_default): Mark as inline.
(objc_synthesize_getter): Updated call to
objc_start_method_definition. Do not set objc_inherit_code.
(objc_synthesize_setter): Updated call to
objc_start_method_definition. Do not set objc_inherit_code.
From-SVN: r165741
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers. Obvious updates
to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
get it to compile in the current trunk.
2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
Radar 4345837
* objc/objc-act.c (hash_class_name_enter): New.
(hash_class_name_lookup): New.
(objc_declare_alias): Enter alias name into hash table.
(objc_declare_class): Enter class name into hash table.
(objc_is_class_name): Do a hash look up of class name.
(hash_init): Initialize the two new hash tables.
* objc-act.h: Added cls_name_hash_list and als_name_hash_list
declarations, removed class_chain and alias_chain.
From-SVN: r165732
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
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_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
gcc/c-family:
* c-common.c (c_common_reswords): Add package, RID_AT_PACKAGE.
* c-common.h (enum rid): Add RID_AT_PACKAGE.
(objc_ivar_visibility_kind): New enum.
(objc_set_visibility): Adjust prototype to use visibility enum.
* stub-objc.c (objc_set_visibility): Adjust stub to use
visibility enum.
gcc/objc:
* objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and
make its type 'objc_ivar_visibility_kind'.
(objc_start_class_interface): Update to use visibility enum.
(objc_start_class_implementation): Likewise.
(objc_set_visibility): Update to use visibility enum, warn that
@package is handle as per @public.
(add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
* objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and
make its type 'objc_ivar_visibility_kind'.
gcc/cp:
* parser.c (cp_parser_objc_visibility_spec): Update to use visibility
enum, and handle @package.
gcc:
* c-parser.c (c_parser_objc_class_instance_variables): Update to use
visibility enum, and handle @package.
gcc/testsuite:
* objc.dg/fsf-package-0.m: New.
* obj-c++.dg/fsf-package-0.m: New.
From-SVN: r165585
In gcc/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (Fast enumeration protocol): Mention that
'unsigned int' can also be used instead of 'unsigned long' in
countByEnumeratingWithState:objects:count:.
In gcc/objc/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/45925
* objc-act.c (objc_finish_foreach_loop): Convert return value of
countByEnumeratingWithState:objects:count: to long unsigned int.
From-SVN: r165129
gcc/objc:
* objc-act.c (build_objc_method_call): Replace calls to
build_function_call () with the VEC equivalent. Construct parameter
lists as VECs.
From-SVN: r165112
gcc/objc:
* objc-act.c (objc_build_message_expr): Call mark_exp_read () to signal that
the receiver has been used.
gcc/testsuite:
* objc.dg/set-not-used-1.m: New
* obj-c++.dg/set-not-used-1.mm: New.
From-SVN: r165111
In gcc/:
2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented fast enumeration for Objective-C.
* c-parser.c (objc_could_be_foreach_context): New.
(c_lex_one_token): Recognize RID_IN keyword in a potential
Objective-C foreach context.
(c_parser_declaration_or_fndef): Added parameter. Accept
Objective-C RID_IN keyword as terminating a declaration; in that
case, return the declaration in the new parameter.
(c_parser_extenral_declaration): Updated calls to
c_parser_declaration_or_fndef.
(c_parser_declaration_or_fndef): Same change.
(c_parser_compound_statement_nostart): Same change.
(c_parser_label): Same change.
(c_parser_objc_methodprotolist): Same change.
(c_parser_omp_for_loop): Same change.
(c_parser_for_statement): Detect and parse Objective-C foreach
statements.
(c_parser_omp_for_loop): Updated call to check_for_loop_decls().
* c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
fast enumeration parsing code to turn off the c99 error but still
perform checks on the loop declarations.
* c-tree.h (check_for_loop_decls): Updated declaration.
* doc/objc.texi: Document fast enumeration.
In gcc/c-family/:
2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented fast enumeration for Objective-C.
* c-common.h (objc_finish_foreach_loop): New.
* stub-objc.c (objc_finish_foreach_loop): New.
In gcc/objc/:
2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented fast enumeration for Objective-C.
* objc-act.c (build_fast_enumeration_state_template): New.
(TAG_ENUMERATION_MUTATION): New.
(TAG_FAST_ENUMERATION_STATE): New.
(synth_module_prologue): Call build_fast_enumeration_state_template() and set up
objc_enumeration_mutation_decl.
(objc_create_temporary_var): Allow providing a name to temporary
variables.
(objc_build_exc_ptr): Updated calls to
objc_create_temporary_var().
(next_sjlj_build_try_catch_finally): Same change.
(objc_finish_foreach_loop): New.
* objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
objc_enumeration_mutation_decl.
Merge from 'apple/trunk' branch on FSF servers.
2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
Radar 4507230
* objc-act.c (objc_type_valid_for_messaging): New routine to check
for valid objc object types.
(objc_finish_foreach_loop): Check for invalid objc objects in
foreach header.
In gcc/testsuite/:
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented fast enumeration for Objective-C.
* objc.dg/foreach-1.m: New.
* objc.dg/foreach-2.m: New.
* objc.dg/foreach-3.m: New.
* objc.dg/foreach-4.m: New.
* objc.dg/foreach-5.m: New.
* objc.dg/foreach-6.m: New.
* objc.dg/foreach-7.m: New.
Merge from 'apple/trunk' branch on FSF servers:
2006-04-13 Fariborz Jahanian <fjahanian@apple.com>
Radar 4502236
* objc.dg/objc-foreach-5.m: New.
2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
Radar 4507230
* objc.dg/objc-foreach-4.m: New.
2006-03-13 Fariborz Jahanian <fjahanian@apple.com>
Radar 4472881
* objc.dg/objc-foreach-3.m: New.
2005-03-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4468498
* objc.dg/objc-foreach-2.m: New.
2006-02-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4294910
* objc.dg/objc-foreach-1.m: New
In libobjc/:
2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented fast enumeration for Objective-C.
* Makefile.in (C_SOURCE_FILES): Added objc-foreach.c.
(OBJC_H): Added runtime.h
* objc-foreach.c: New file.
* objc/runtime.h: New file.
From-SVN: r165019
In gcc/:
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_method_definition): Updated comment.
In gcc/cp/:
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc++/31125
* parser.c (cp_parser_objc_class_interface): If no identifier
follows an @interface token, stop parsing the interface after
printing an error.
(cp_parser_objc_class_implementation): If no identifier follows an
@implementation token, stop parsing the implementation after
printing an error.
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc++/23707
* parser.c (cp_parser_objc_method_keyword_params): If the required
colon is not found while parsing parameters, stop parsing them.
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc++/31126
* parser.c (cp_parser_objc_class_ivars): Do not eat the EOF or
@end after detecting it. Print an error if @end is found without
a '}'.
(cp_parser_objc_method_prototype_list): Do not eat the EOF after
detecting it. Fixed reading the next token when continuing
because of an error in a method signature. Print an error if EOF
is found without an '@end'.
(cp_parser_objc_method_definition_list): Same change.
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from apple/trunk branch on FSF servers:
2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
Radar 4290840
* parser.c (cp_parser_objc_method_keyword_params): Check for valid
method parameters and issue error.
(cp_parser_objc_method_definition_list): Check for invalid tokens
which cannot start a function definition.
2005-10-14 Fariborz Jahanian <fjahanian@apple.com>
Radar 4294425
* parser.c (cp_parser_objc_message_args): Check for missing message
arguments and syntax error.
2005-10-13 Fariborz Jahanian <fjahanian@apple.com>
Radar 4261146
* parser.c (cp_parser_objc_class_ivars): Check for @end/eof while
looking for '}'.
2005-08-15 Ziemowit Laski <zlaski@apple.com>
Radar 4093475
* parser.c (cp_parser_objc_interstitial_code): Catch stray
'{' and '}' tokens and issue appropriate errors.
2005-08-02 Ziemowit Laski <zlaski@apple.com>
Radar 4185810
(cp_parser_statement_seq_opt): In addition to '}' and
end-of-file, a statement sequence may also be terminated
by a stray '@end'.
In gcc/objc/:
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
Radar 4290840
* objc-act.c (objc_start_method_definition): Check for error_mark_node for
the selector name and make a quick exit.
In gcc/testsuite/:
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc++/28050
* obj-c++.dg/syntax-error-10.mm: New.
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc++/23707
* obj-c++.dg/syntax-error-9.mm: New.
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc++/31126
* obj-c++.dg/syntax-error-8.mm: New.
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
Radar 4290840
* obj-c++.dg/syntax-error-7.mm: New
2005-10-14 Fariborz Jahanian <fjahanian@apple.com>
Radar 4294425
* obj-c++.dg/syntax-error-6.mm: New
2005-10-13 Fariborz Jahanian <fjahanian@apple.com>
Radar 4261146
* obj-c++.dg/syntax-error-5.mm: New
2005-08-15 Ziemowit Laski <zlaski@apple.com>
Radar 4093475
* obj-c++.dg/syntax-error-[3-4].mm: New.
2005-08-02 Ziemowit Laski <zlaski@apple.com>
Radar 4185810
* obj-c++.dg/syntax-error-[1-2].mm: New.
From-SVN: r164997
-fwhopr=jobserver requires telling GNU make that the linker (= lto)
rules support job server, so that the necessary jobserver
information is passed through.
Add + to all the executable targets that run LTO for this purpose.
This improves build performance with a -fwhopr=jobserver
bootstrap (or BUILD_CONFIG=bootstrap-lto) significantly.
I didn't change Ada because that apparently doesn't support LTO.
Passes bootstrap and test suite. Ok to commit?
gcc/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
gcov-dump, cc1-dummy, genprog, build/gcov-iov):
Add + to build rule.
gcc/cp/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (g++, cc1plus): Add + to build rule.
gcc/fortran/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (gfortran, f951): Add + to build rule.
gcc/java/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain):
Add + to build rule.
gcc/lto/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (lto1): Add + to build rule.
gcc/objc/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
gcc/objcp/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (cc1objplus-dummy, cc1objplus): Add + to build rule.
More plus fixes
From-SVN: r164949
add @optional/@required to prto lists
gcc:
* c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
parse @optional/@required and set the flags as appropriate.
gcc/c-family:
* c-common.c: Add two new entries for @optional
and @required keywords.
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new
objective-c keywords.
(objc_set_method_opt): New declaration.
* stub-objc.c (objc_set_method_opt): New stub.
gcc/cp:
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* cp/parser.c (cp_parser_objc_interstitial_code): For
@optional/@required set the optional/required flag.
gcc/objc:
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* objc/objc-act.c (objc_set_method_opt): New function.
(objc_start_protocol, objc_finish_interface): Reset
objc_method_optional_flag flag.
(objc_add_method_declaration): Pass on the new
flag to objc_add_method.
(objc_add_method): Add optional methods to new chain in
the protocol class.
* objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS,
CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
class's optional method chains.
testsuite:
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* objc.dg/enhanced-proto-1.m: New.
* objc.dg/enhanced-proto-2.m: New.
* obj-c++.dg/enhanced-proto-1.mm: New
* obj-c++.dg/enhanced-proto-2.mm: New.
From-SVN: r164754
In gcc/testsuite/:
2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
Radar 4278236
* obj-c++.dg/bad-forward-decl.mm: New
In gcc/objc/:
2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
Radar 4278236
* objc-act.c (objc_declare_class): Pick the right
type tree.
From-SVN: r164745
In gcc/:
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
* c-parser.c: Applied change originally in c-parse.in.
2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
Radar 4281748
* c-decl.c (start_decl): Check for redeclaration of class name.
* c-parse.in (after_type_declarator): Recognize CLASSNAME.
In gcc/c-family/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
Radar 4281748
* c-common.h (objc_check_global_decl): New declaration.
* stub-objc.c (objc_check_global_decl): New stub.
In gcc/objc/:
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
Radar 4281748
* objc-act.c (objc_check_global_decl): New
In gcc/testsuite/:
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
Radar 4281748
* objc.dg/naming-2.m: Update
* objc.dg/naming-3.m: New
From-SVN: r164735
In gcc/:
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_lex_one_token): In Objective-C, when dealing with
a CPP_NAME which is a reserved word, clearly separate cases for
OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
In gcc/c-family:
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (OBJC_IS_CXX_KEYWORD): New macro. Updated comments.
(objc_is_reserved_word): Removed.
* c-common.c: Updated comments.
* c-lex.c (c_lex_with_flags): Use OBJC_IS_CXX_KEYWORD instead of
objc_is_reserved_word.
* stub-objc.c (objc_is_reserved_word): Removed.
In gcc/objc/:
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_is_reserved_word): Removed.
In gcc/testsuite/:
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/keywords-1.m: New test.
* objc.dg/keywords-2.m: New test.
* objc.dg/keywords-3.m: New test.
* obj-c++.dg/keywords-1.mm: New test.
* obj-c++.dg/keywords-2.mm: New test.
From-SVN: r164715
In gcc/objc/:
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-08-23 Stuart Hastings <stuart@apple.com>
Ziemowit Laski <zlaski@apple.com>
Radar 4209854
* objc-act.c (objc_decay_parm_type): New function.
(get_arg_type_list): Decay types for all named arguments.
(objc_push_parm): Rebuild the PARM_DECL if its type has
been decayed.
In gcc/testsuite/:
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers (test method-20.m
from the branch renamed to method-20b.m to avoid clashes).
2005-08-23 Stuart Hastings <stuart@apple.com>
Ziemowit Laski <zlaski@apple.com>
Radar 4209854
* obj-c++.dg/method-23.mm: New.
* objc.dg/method-20.m: New.
From-SVN: r164694
In gcc/objc/:
2010-09-28 Nicola Pero <nicola@nicola.brainstorm.co.uk>
* objc-act.c (encode_type): Fixed encoding enums with the next
runtime.
From-SVN: r164693
In gcc/objc/:
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-07-18 Ziemowit Laski <zlaski@apple.com>
Radar 4175534
* objc-act.c (objc_compare_types): A new silent comparison
mode (-4), differing from regular comparison (-3) in that
'false' is returned instead of issuing warnings.
In gcc/testsuite/:
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-07-18 Ziemowit Laski <zlaski@apple.com>
Radar 4175534
* obj-c++.dg/method-22.mm: New.
From-SVN: r164681
In gcc/objc/:
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (encode_type): Do not add 'r' with the next runtime.
(encode_aggregate_within): Reorganized code to be more readable.
(encode_aggregate_fields): Updated second argument to be 'bool'
instead of 'int'.
From-SVN: r164680
In gcc/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (Type encoding): Added the new 'long double' (D)
code. Added byref, which was missing in the list of codes.
Explain that enumeration values are encoded as the integer type
that the compiler uses to store them. Explain and make examples
of how 'const' interacts with pointers, and the complication of
the encoding of 'const char *'.
(Legacy type encoding): New subsection, explaining that GCC emits
incorrect type encodings for the NeXT runtime for compatibility
reasons.
(@@encode): New subsection, explaining @encode and particularly
that protocol qualifiers are not recognized inside an @encode()
expression.
(Method signatures): New subsection, explaining how method
signatures are encoded.
In gcc/objc/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/45763
PR objc/25450
PR objc/25464
* objc-act.c: Improved comments for encoding functions.
(encode_aggregate_within): For the GNU runtime, rewritten some
obsfuscated code to clarify the various cases.
(encode_aggregate): Function removed.
(encode_array): Generate an error if asked to encode an incomplete
array as part of generating instance variables. Else, when
encoding an incomplete array inside a structure, encode it as an
array of zero size.
(encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
'^c' instead of '*'.
(encode_gnu_bitfield): Encode enumerated types exactly in the same
type as integer types instead of using a hardcoded 'i'. If asked
to encode a non-integer type as a bitfield, do not abort
compilation immediately; instead generate an error, then skip the
type.
(encode_type): Use a 'switch' instead of a sequence of 'if's.
Added a 'default' clause that gets executed if the type can not be
matched, and that encodes it as '?' (unknown) and produces a
warning. For the GNU runtime, encode enumerated types exactly in
the same way as integer types instead of using a hardcoded 'i'.
Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'.
Encode C++ reference types as pointers. Call encode_vector to
encode vectors.
(encode_vector): New function.
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers. I modified the
changes to be used only when compiling for the NeXT runtime.
2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
Radar 4301047
* objc-act.c (encode_type): Remove the hack.
2005-07-20 Ziemowit Laski <zlaski@apple.com>
Radar 4136935
* objc-act.c (pointee_is_readonly): New function.
(encode_pointer, encode_aggregate_within, encode_type):
Attempt to emulate GCC 3.3 when generating type encodings.
In gcc/testsuite/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/25464
* objc.dg/type-size-3.m: New test.
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/45763
* objc.dg/encode-1.m: Execute the test with the GNU runtime as
well.
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/25450
* objc.dg/encode-3.m: Updated for fix of encoding of enums.
* objc.dg/type-size-2.m: Same change.
* obj-c++.dg/encode-5.mm: Same change.
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers. The original
Changelogs are below.
* objc.dg/encode-6.m: Execute the test only with the GNU runtime.
* objc.dg/encode-6-next.m: New file (from encode-6.m in the
branch).
* objc.dg/encode-7-next.m: New file (from encode-7.m in the
branch).
* objc.dg/encode-7-next-64bit.m: New file (from encode-7-64bit.m
in the branch).
* objc.dg/proto-qual-1.m: Test the 3.3 ABI on NeXT (from
proto-qual-1.m in the branch) and the normal ABI on GNU.
* objc.dg/threedotthree-abi-1.m: New file (from the branch). Run
the test only with the NeXT runtime.
* obj-c++/encode-1.mm: Execute the test only with the GNU runtime.
* obj-c++/encode-1-next.mm: New file (from encode-1.mm in the
branch).
* obj-c++.dg/threedotthree-abi-1.mm: New file (from the branch).
Run the test only with the NeXT runtime.
2006-03-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4492973
* objc.dg/encode-7-64bit.m: New.
* objc.dg/encode-7.m: Skip if -m64.
2005-10-19 Fariborz Jahanian <fjahanian@apple.com>
Radar 4301047
* objc.dg/proto-qual-1.m: Fix test to match 3.3 ABI
* obj-c++.dg/threedotthree-abi-1.mm: New
* objc.dg/threedotthree-abi-1.m: New
2005-07-20 Ziemowit Laski <zlaski@apple.com>
Radar 4136935
* obj-c++.dg/encode-1.mm: Tweak encodings to match fix.
* objc.dg/encode-6.m: Likewise.
* objc.dg/encode-7.m: New test case.
In libobjc/:
2010-09-26 Nicola Pero <nicola.pero@meta-innovation.com>
* encoding.c (objc_sizeof_type): Added support for vector type and
for double long types.
(objc_alignof_type): Same change.
(objc_skip_typespec): Same change.
* objc/encoding.h (_C_GCINVISIBLE): Use '|' for _C_GCINVISIBLE
instead of '!' since '!' is already used for _C_VECTOR.
* objc/objc-api.h (_C_LNG_DBL): Added.
From-SVN: r164659
In gcc/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers. Removed small
change in build_conditional_expr that had been added when fixing
PR objc/27377 and which did the same check in a less complete way.
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
* c-typeck.c (build_conditional_expr): Call objc_have_common_type when
looking for objective-c common pointer types.
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
* c-typeck.c (build_conditional_expr): For two ObjC pointer types,
use their ObjC common type.
In gcc/c-family:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
* c-common.h (objc_have_common_type): New declaration.
* stub-objc.c (objc_have_common_type): New stub.
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
* c-common.h (objc_common_type): New prototype.
* stub-objc.c (objc_common_type): New stub.
In gcc/objc/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
* objc-act.c (objc_have_common_types): New function.
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
* objc-act.c (objc_common_type): New function.
In gcc/cp/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from apple/trunk branch on FSF servers:
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
* typeck.c (composite_pointer_type): Call objc_have_common_type
when comparing two objective-c pointer types.
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
* call.c (standard_conversion): Allow for a pointer conversion
between any two ObjC pointer types.
* typeck.c (composite_pointer_type): Determine common type
for two ObjC pointer types.
In gcc/testsuite/:
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers. Renamed
const-str-12.m to constr-str-12b.m to avoid conflicts.
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
* obj-c++.dg/warn5.mm: New
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
* obj-c++.dg/const-str-12.mm: New.
* objc.dg/const-str-12.m: New.
From-SVN: r164655
2010-09-27 Richard Guenther <rguenther@suse.de>
* objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
(objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
From-SVN: r164652
PR objc/23710
In gcc/:
* c-family/c-common.h (objc_start_method_definition): Return bool
instead of void.
* c-family/stub-objc.c (objc_start_method_definition): Return bool
instead of void.
* c-parser.c (c_parser_objc_method_definition): Check the return
value of objc_start_method_definition and if false is returned,
parse the method definition but emit no code.
In gcc/objc/:
* objc-act.c (objc_start_method_definition): Do not abort upon a
'method definition not in @implementation context' error. Return
'false' instead.
In gcc/testsuite/:
* objc.dg/invalid-method-1.m: New.
From-SVN: r164497
PR objc/25965
In gcc/objc/:
* objc-act.c (objc_get_interface_ivars): New function.
(objc_collecting_ivars): New variable.
(continue_class): Set and reset objc_collecting_ivars for context.
In gcc/:
* c-decl.c (detect_field_duplicates): If compiling Objective-C,
call objc_get_interface_ivars ().
* c-family/c-common.h (objc_get_interface_ivars): New declaration.
* c-family/stub-objc.c (objc_get_interface_ivars): New stub.
In gcc/objcp/:
* objcp-decl.c (objcp_finish_struct): Call
objc_get_interface_ivars() and check for duplicate ivars.
In gcc/testsuite/:
Merge from 'apple/trunk' branch on FSF servers.
2005-10-11 Fariborz Jahanian <fjahanian@apple.com>
Radar 4291785
objc.dg/naming-4.m: New
objc.dg/naming-5.m: New
obj-c++.dg/naming-1.mm: New
obj-c++.dg/naming-2.mm: New
From-SVN: r164491
2010-09-15 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
Radar 4457381
* objc.dg/msg-in-protocol.m: New.
* obj-c++.dg/msg-in-protocol.mm: New.
2006-02-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4219590
* objc.dg/break-in-ifstmt.m: New.
2005-08-22 Ziemowit Laski <zlaski@apple.com>
Radar 4174166
* obj-c++.dg/comp-types-13.mm: New.
* objc.dg/comp-types-12.m: New.
2005-08-22 Ziemowit Laski <zlaski@apple.com>
Radar 4216500
* obj-c++.dg/proto-lossage-7.mm: New.
* objc.dg/proto-lossage-7.m: New.
In gcc/objc/:
2010-09-15 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
Radar 4457381
* objc/objc-act.c (objc_finish_message_expr): Look for message in
@class's protocol list.
2006-02-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4219590
* objc/objc-act.c (objc_start_method_definition): Initialize
break/continue labels.
2005-08-22 Ziemowit Laski <zlaski@apple.com>
Radar 4174166
* objc-act.c (objc_compare_types): Compare function
pointers; indicate success if the right-hand side has
a return type that is covariant, and the argument types
contravariant, with those of the left side.
2005-08-22 Ziemowit Laski <zlaski@apple.com>
Radar 4216500
* objc-act.c (objc_get_protocol_qualified_type): When looking
at a typedef, retrieve the precise type it describes (rather
than merely looking up a class by name).
From-SVN: r164290
gcc/
PR objc/44140
* config/darwin.c (output_objc_section_asm_op): Save and restore
section when outputting ObjC section list.
testsuite/
PR objc/44140
* objc.dg/lto/trivial-1_0.m: New.
* objc.dg/lto/lto.exp: New.
* obj-c++.dg/lto/trivial-1_0.mm: New.
* obj-c++.dg/lto/lto.exp: New.
* objc.dg/symtab-1.m: Adjust sizes.
* objc.dg/image-info.m: Do not run for gnu-runtime.
gcc/objc/
PR objc/44140
* objc-act.c: build_objc_string_decl() remove declaration.
(finish_var_decl): Remove forcing of var output and marking
as "Used".
(init_def_list): Use integer_zero_node.
(init_objc_symtab): Use integer_zero_node, make the short
integer type specific on relevant nodes.
(generate_objc_symtab_decl): Remove call to
forward_declare_categories(). Use null_pointer_node where
appropriate.
(build_module_descriptor): Comment and mark this item as
DECL_PRESERVE_P.
(generate_static_references): Use gcc_unreachable instead of
abort ().
(diagnose_missing_method): New.
(build_next_selector_translation_table): New.
(build_gnu_selector_translation_table): New.
(add_objc_string): Merge code from build_objc_string_decl...
... and delete build_objc_string_decl().
(generate_dispatch_table): Make integer types explicit.
(generate_category): Pass implent and arrange for the data
to be extracted within the routine. Do not start new vars,
but finish the ones collcted during parsing.
(generate_shared_structures): Likewise.
(finish_objc): Reorder code so that we finish variables before
referencing them. Save the global data before calling meta-data
creation routines, and pass the current reference to the two
main routines. Only call generate_objc_image_info () for the
NeXT runtime.
(generate_classref_translation_entry): Comment on and make this
item DECL_PRESERVE_P.
(handle_class_ref): Use varpool interfaces, comment on and make
this item DECL_PRESERVE_P.
(handle_impent): Likewise.
(generate_objc_image_info): Only generate when the content is
non-zero. Make integer types explict.
From-SVN: r162030
gcc/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* system.h: Poison GCC_EXCEPT_H for front-end files.
* langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
langhook.
* langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
Define to NULL by default.
* except.h: Define GCC_EXCEPT_H.
(doing_eh): Remove prototype.
(init_eh, init_eh_for_function): Move prototypes to toplev.h.
(lang_protect_cleanup_actions): Remove.
* except.c (lang_protect_cleanup_actions): Remove.
(doing_eh): Remove.
(gen_eh_region): Don't check doing_eh here.
* toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
* tree-eh.c (honor_protect_cleanup_actions): Use new langhook
instead of lang_protect_cleanup_actions.
* omp-low.c (maybe_catch_exception): Likewise.
* Makefile.in: Update dependencies.
gcc/c-family/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* c-cppbuiltin.c: Do not include except.h.
gcc/objc/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* objc-act.c: Do not include except.h.
gcc/cp/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* init.c: Do not include except.h.
* decl.c: Likewise.
* expr.c: Likewise.
* cp-lang.c: Likewise.
* pt.c: Likewise.
* semantics.c: Likewise.
* decl2.c: Likewise.
* except.c: Likewise.
(init_exception_processing): Do not set the removed
lang_protect_cleanup_actions here.
(cp_protect_cleanup_actions): Make non-static and remove prototype.
(doing_eh): New, moved from except.c but removed the do_warning flag.
(expand_start_catch_block): Update doing_eh call.
(expand_end_catch_block): Likewise.
(build_throw): Likewise.
* cp-tree.h: Prototype cp_protect_cleanup_actions.
* cp-objcp-common.h: Set LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS to
cp_protect_cleanup_actions.
* Make-lang.in: Update dependencies.
gcc/objcp/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* objcp-lang.c: Do not include except.h.
* Make-lang.in: Update dependencies.
gcc/java/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* lang.c: Do not include except.h
* except.c: Likewise.
(doing_eh): New, moved from except.c (in gcc/) but removed the
do_warning flag.
(maybe_start_try): Update doing_eh call.
* Make-lang.in: Update dependencies.
gcc/ada/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* gcc-interface/misc.c: Do not include except.h.
* gcc-interface/Make-lang.in: Update dependencies.
gcc/fortran/ChangeLog:
2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
* Make-lang.in: Update dependencies.
From-SVN: r161484
* diagnostic-core.h: New. Contents moved from diagnostic.h and
toplev.h.
* diagnostic.c: Don't include toplev.h.
(progname): Define. Moved from toplev.c.
(seen_error): New function.
* diagnostic.h: Include diagnostic-core.h.
(diagnostic_t, emit_diagnostic): Don't declare here.
* toplev.c (progname): Move to toplev.c.
(emit_debug_global_declarations, compile_file, finalize,
do_compile, toplev_main): Use seen_error.
* toplev.h: Include diagnostic-core.h.
(trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
internal_error, warning, warning_at, error, error_n, error_at,
fatal_error, pedwarn, permerror, sorry, inform, inform_n,
verbatim, fnotice, progname): Move to diagnostic-core.h.
* builtins.c: Include diagnostic-core.h instead of diagnostic.h.
(expand_builtin_expect): Use seen_error.
* c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
(c_make_fname_decl, c_write_global_declarations): Use seen_error.
* c-format.c: Include diagnostic-core.h instead of diagnostic.h.
* c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
* c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
* c-lex.c (c_lex_with_flags, interpret_float): Don't increment
errorcount for errors.
* c-opts.c (c_common_finish): Use seen_error.
* cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
* cgraphunit.c (verify_cgraph_node, verify_cgraph,
cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
* coverage.c: Include diagnostic-core.h instead of diagnostic.h.
(get_coverage_counts): Use seen_error.
* dwarf2out.c (dwarf2out_finish): Use seen_error.
* gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
gimplify_body): Use seen_error.
* ipa-inline.c (cgraph_early_inlining): Use seen_error.
* ipa-pure-const.c (gate_pure_const): Use seen_error.
* ipa-reference.c (gate_reference): Use seen_error.
* jump.c: Include diagnostic-core.h instead of diagnostic.h.
* lambda-code.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
* lto-compress.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-section-in.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-streamer-out.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-streamer.c: Include diagnostic-core.h instead of
diagnostic.h.
(gate_lto_out): Use seen_error.
* matrix-reorg.c: Include diagnostic-core.h instead of
diagnostic.h.
* omega.c: Include diagnostic-core.h instead of diagnostic.h.
* omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
(gate_expand_omp, lower_omp_1): Use seen_error.
* passes.c: Include diagnostic-core.h instead of diagnostic.h.
(rest_of_decl_compilation, rest_of_type_compilation,
gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
* tree-cfg.c (label_to_block_fn): Use seen_error.
* tree-inline.c (optimize_inline_calls): Use seen_error.
* tree-mudflap.c (mudflap_finish_file): Use
seen_error.
* tree-optimize.c (gate_all_optimizations,
gate_all_early_local_passes, gate_all_early_optimizations): Use
seen_error.
* tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
* varpool.c: Include diagnostic-core.h instead of diagnostic.h.
(varpool_remove_unreferenced_decls,
varpool_assemble_pending_decls): Use seen_error.
* Makefile.in (DIAGNOSTIC_CORE_H): Define.
(TOPLEV_H, DIAGNOSTIC_H): Update.
(c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
coverage.o, lambda-code.o): Update dependencies.
cp:
* call.c: Include diagnostic-core.h instead of diagnostic.h.
* cp-lang.c: Don't include diagnostic.h
* name-lookup.c: Include diagnostic-core.h instead of
diagnostic.h.
(cp_emit_debug_info_for_using): Use seen_error.
* optimize.c: Include diagnostic-core.h instead of diagnostic.h.
* parser.c: Include diagnostic-core.h instead of diagnostic.h.
* pt.c (iterative_hash_template_arg): Use seen_error.
* repo.c: Include diagnostic-core.h instead of diagnostic.h.
* typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
* Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
dependencies.
lto:
* lto.c: Include diagnostic-core.h instead of diagnostic.h.
(read_cgraph_and_symbols, lto_main): Use seen_error.
* Make-lang.in (lto/lto.o): Update dependencies.
objc:
* objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
* Make-lang.in (objc/objc-act.o): Update dependencies.
From-SVN: r159947
gcc/ChangeLog:
* Makefile.in (EXCEPT_H): Fix typo.
objc/ChangeLog:
* objc-act.h: Do not include gimple.h.
* objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
Include gimple.h. Explain why except.h has to be included.
* objc-lang.c: Do not include diagnostics.h.
* Make-lang.in: Update dependencies.
objcp/ChangeLog:
* objcp-decl.c: Do not include tm.h, rtl.h, expr.h, c-common.h,
flags.h, input.h, except.h, output.h, toplev.h, cpplib.h, debug.h,
and target.h.
* objcp-lang.c: Do not include tm.h, toplev.h, diagnostics.h,
and debug.h. Explain why except.h has to be included.
* Make-lang.in: Update dependencies.
cp/ChangeLog:
* cp-tree.h: Do not include splay-tree.h.
(struct prtmem_cst): Remove unused field and false comment.
* typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
* optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
* init.c: Do not include rtl.h and expr.h.
* class.c: Do not include rtl.h. Include splay-tree.h.
(build_clone): Use plain NULL instead of NULL_RTX.
* decl.c: Do not include expr.h. Explain why rtl.h has to be
included. Include splay-tree.h.
* method.c: Do not include rtl.h and expr.h.
(use_thunk): Use plain NULL instead of NULL_RTX.
* except.c: Do not include rtl.h, expr.h, and libfuncs.h.
* tree.c: Do not include rtl.h, insn-config.h, integrate.h,
and target.h. Include splay-tree.h.
* expr.c: Do not include rtl.h and expr.h.
* pt.c: Do not include obstack.h and rtl.h.
(tsubst_friend_function): Use plain NULL instead of NULL_RTX.
(tsubst_decl): Likewise.
(instantiate_decl): Likewise.
* semantics.c: Do not include exprt.h and debug.h. Explain why
rtl.h has to be included.
* decl2.c: Do not include rtl.h and expr.h. Include splay-tree.h.
* call.c: Do not include rtl.h and expr.h.
* search.c: Do not include obstack.h and rtl.h.
* friend.c: Do not include rtl.h and expr.h.
* Make-lang.in: Update dependencies.
From-SVN: r159839
gcc/ChangeLog:
* toplev.c: Include varray.h for statistics dumping.
* tree.h: Do not declare varray_head_tag.
* tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
c-common.c, c-common.h, reg-stack.c, basic-block.h,
tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
include varray.h.
* Makefile.in: Update for abovementioned changes.
objc/ChangeLog:
* objc-act.c: Do not include varray.h.
objcp/ChangeLog:
* objcp-decl.c: Do not include varray.h.
cp/ChangeLog:
* optimize.c, parser.c,mangle.c, cp-tree.h: DO not include varray.h.
* Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
From-SVN: r158933