Commit Graph

548 Commits

Author SHA1 Message Date
Nicola Pero 35bce82a80 In gcc/objc/: 2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-28 12:39:29 +00:00
Nicola Pero 333031f2d3 In gcc/testsuite/: 2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-28 03:40:58 +00:00
Nathan Froyd f4da8dce7a c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
gcc/
	* c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
	* c-decl.c (diagnose_arglist_conflict): Likewise.
	(diagnose_mismatched_decls, merge_decls): Likewise.
	(c_builtin_function, c_builtin_function_ext_scope): Likewise.
	(start_decl, start_function): Likewise.
	* c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise.
	* config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise.
	* config/mep/mep.c (mep_validate_interrupt): Likewise.
	* config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise.
	* config/rs6000/rs6000.c (init_cumulative_args): Likewise.
	* config/sh/sh.c (sh_init_cumulative_args): Likewise.
	* config/sparc/sparc.c (init_cumulative_args): Likewise.
	* dwarf2out.c (add_prototyped_attribute): Likewise.
	(gen_subprogram_die): Likewise.
	* ipa-type-escape.c (check_function_parameter_and_return_types):
	Likewise.
	(check_call): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Likewise.

gcc/ada/
	* gcc-interface/utils.c (handle_nonnull_attribute): Use prototype_p.
	(handle_sentinel_attribute): Likewise.

gcc/c-family/
	* c-common.c (handle_nonnull_attribute, handle_sentinel_attribute):
	Use prototype_p.

gcc/cp/
	* decl.c (decls_match, duplicate_decls): Use prototype_p.
	* pt.c (push_template_decl_real): Likewise.

gcc/lto/
	* lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
	Use prototype_p.

gcc/objc/
	* objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.

From-SVN: r168181
2010-12-22 19:45:58 +00:00
Nicola Pero 46270f141b In gcc/: 2010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_try_catch_finally_statement): Call
	objc_maybe_warn_exceptions.
	(c_parser_objc_synchronized_statement): Call
	objc_maybe_warn_exceptions.
	
In gcc/cp/:
2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* parser.c (cp_parser_objc_try_catch_finally_statement): Call
	objc_maybe_warn_exceptions.
	(cp_parser_objc_synchronized_statement): Same change.

In gcc/c-family/:
2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-objc.h (objc_maybe_warn_exceptions): New.
	* stub-objc.c (objc_maybe_warn_exceptions): New.	
	
In gcc/objc/:
2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (objc_init): Call using_eh_for_cleanups.
	(objc_init_exceptions): Renamed to objc_maybe_warn_exceptions.  Do
	not call using_eh_for_cleanups.
	(objc_begin_try_stmt): Do not call objc_init_exceptions.
	(objc_build_throw_stmt): Updated call to
	objc_maybe_warn_exceptions.

In gcc/testsuite/:
2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc.dg/fobjc-exceptions-1.m: Updated.
	* objc.dg/fobjc-exceptions-2.m: New.
	* objc.dg/fobjc-exceptions-3.m: New.
	* obj-c++.dg/fobjc-exceptions-1.mm: New.
	* obj-c++.dg/fobjc-exceptions-2.mm: New.
	* obj-c++.dg/fobjc-exceptions-3.mm: New.

From-SVN: r168032
2010-12-18 20:28:07 +00:00
Iain Sandoe 5287cfd594 objc-act.c (objc_eh_personality): Select personality name on runtime.
gcc/objc:

	* objc/objc-act.c (objc_eh_personality): Select personality name on
	runtime.
	(objc_init_exceptions): New.
	(objc_begin_try_stmt): Use objc_init_exceptions.
	(objc_build_throw_stmt): Likewise.

gcc/testsuite:

	* fobjc-exceptions.m: Update dg-error syntax.

From-SVN: r168020
2010-12-18 11:28:46 +00:00
Nicola Pero ec3e9f8267 In gcc/: 2010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-10 09:38:52 +00:00
Nicola Pero 6347cf3119 In gcc/objc/: 2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-08 23:46:28 +00:00
Nicola Pero 7c35d89dca In gcc/objc/: 2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-08 23:20:21 +00:00
Nicola Pero 69a9720167 In gcc/: 2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-06 21:27:01 +00:00
Nicola Pero 61d3ce2026 In gcc/: 2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-06 00:56:06 +00:00
Nicola Pero d0f7899abb In gcc/objc/: 2010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-12-02 00:25:42 +00:00
Nicola Pero 6c39e757f6 In gcc/c-family/: 2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/c-family/:
2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (objc_finish_function): New.
	(objc_non_volatilized_type): Removed.
	(objc_type_quals_match): Removed.
	* stub-objc.c (objc_finish_function): New.
	(objc_non_volatilized_type): Removed.
	(objc_type_quals_match): Removed.
	
In gcc/objc/:
2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (objc_build_volatilized_type): Removed.
	(objc_non_volatilized_type): Removed.
	(objc_type_quals_match): Removed.
	(local_variables_to_volatilize): New.
	(objc_volatilize_decl): Add the decl to volatilize to
	local_variables_to_volatilize, but don't volatilize it yet.
	(objc_finish_function): New.
	* objc-act.h (local_variables_to_volatilize): New.

In gcc/cp/:
2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* decl.c (finish_function): Call objc_finish_function when
	compiling Objective-C++.
	* call.c (standard_conversion): Do not call
	objc_non_volatilized_type().
	(implicit_conversion): Same change.
	* typeck.c (comp_ptr_ttypes_real): Same change.

In gcc/:
2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-decl.c (finish_function): Call objc_finish_function in
	Objective-C.
	* c-typeck.c (convert_for_assignment): Do not call
	objc_type_quals_match().

From-SVN: r167318
2010-11-30 21:55:39 +00:00
Nicola Pero 98cf223ca9 In gcc/objc/: 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-29 20:45:49 +00:00
Nicola Pero d402edc15d In gcc/objc/: 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (objc_maybe_build_component_ref): Removed TODO.

In gcc/testsuite/:
2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc.dg/property/dotsyntax-21.m
	* obj-c++.dg/property/dotsyntax-21.mm

From-SVN: r167269
2010-11-29 20:43:35 +00:00
Nicola Pero 437c232224 In gcc/objc/: 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-29 03:15:40 +00:00
Nicola Pero 5944a6dcdf In gcc/objc/: 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-29 02:17:24 +00:00
Nicola Pero 2dd24dbdfe In gcc/objc/: 2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-27 10:06:59 +00:00
Nicola Pero a693d3a8f5 In gcc/objc/: 2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-27 09:53:43 +00:00
Nicola Pero 24e1ee3219 In gcc/objc/: 2010-11-25 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-25 19:50:13 +00:00
Joseph Myers 0576d21f39 common.opt (exit_after_options, [...]): New Variable entries.
* common.opt (exit_after_options, write_symbols, debug_info_level,
	use_gnu_debug_info_extensions): New Variable entries.
	(fprofile-dir=): Use Var.
	* flag-types.h (enum debug_info_level): Rename to enum
	debug_info_levels.
	* flags.h (write_symbols, debug_info_level,
	use_gnu_debug_info_extensions): Remove declarations.
	* opts.c (exit_after_options, write_symbols, debug_info_level):
	Remove.
	(set_struct_debug_option): Make static variables const.
	(use_gnu_debug_info_extensions): Remove.
	(set_debug_level, print_filtered_help, print_specific_help,
	fast_math_flags_set_p): Take gcc_options parameters and use them
	in place of global variables.
	(print_filtered_help): Make new_help non-static.
	(print_specific_help): Update call to print_filtered_help.
	(common_handle_option): Update calls to print_specific_help.  Use
	gcc_options structure for more settings.  Make --help table
	const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
	set_debug_level.
	* toplev.c (profile_data_prefix): Remove.
	* toplev.h (profile_data_prefix, exit_after_options): Remove
	declarations.
	(fast_math_flags_set_p): Update prototype.
	* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
	Update call to fast_math_flags_set_p.

objc:
	* objc-act.c (write_symbols): Don't declare here.

From-SVN: r167064
2010-11-22 23:59:18 +00:00
Nicola Pero d925c9eb81 In gcc/objc/: 2010-11-22 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-22 21:32:49 +00:00
Jakub Jelinek fb3303597e re PR c/46547 (internal compiler error when converting a complex to a bool)
PR c/46547
	* objc-act.c (in_late_binary_op): Remove.

From-SVN: r166964
2010-11-20 00:44:47 +01:00
Nicola Pero d4e72c58e3 In gcc/objc/: 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-19 22:23:22 +00:00
Nicola Pero 6b192a0972 In gcc/: 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-19 12:29:45 +00:00
Nicola Pero 354d8ce108 In gcc/objc/: 2010-11-17 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-17 01:01:49 +00:00
Nicola Pero b6cfe8acc5 In gcc/objc/: 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-15 23:12:49 +00:00
Nicola Pero 925e8657ce In gcc/: 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-15 18:46:42 +00:00
Nicola Pero 8926bd5d5c In gcc/objc/: 2010-11-14 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-14 11:11:18 +00:00
Nicola Pero 5a2a6eb050 In gcc/objc/: 2010-11-13 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-13 15:53:32 +00:00
Nicola Pero 10e34e6eb1 In gcc/objc/: 2010-11-11 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-11 18:58:43 +00:00
Joseph Myers d8a07487de cfgloop.c (verify_loop_structure): Use %' in diagnostics.
* 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
2010-11-10 23:23:15 +00:00
Joseph Myers d547878398 common.opt (flag_excess_precision_cmdline, [...]): New Variable declarations.
* common.opt (flag_excess_precision_cmdline, flag_generate_lto,
	warn_larger_than, larger_than_size, warn_frame_larger_than,
	frame_larger_than_size, flag_gen_aux_info, flag_shlib,
	default_visibility, flag_tls_default): New Variable declarations.
	(aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
	falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
	(v): Declare as Common and document here.
	* flags.h (default_visibility, flag_generate_lto,
	warn_larger_than, larger_than_size, warn_frame_larger_than,
	frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
	flag_shlib, flag_excess_precision_cmdline): Remove.
	(set_Wstrict_aliasing): Update prototype.
	* gcc.c (verbose_flag): Remove.
	(driver_handle_option): Add diagnostic_context parameter.  Don't
	handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
	incrementing it.
	* opts-common.c (handle_option): Pass dc to handler.
	* opts.c (warn_larger_than, larger_than_size,
	warn_frame_larger_than, frame_larger_than_size,
	default_visibility): Remove.
	(common_handle_option): Add diagnostic_context parameter.
	(set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
	gcc_options parameters.
	(lang_handle_option, target_handle_option, read_cmdline_options,
	decode_options): Add diagnostic_context parameters.
	(finish_options): Access option state through opts pointer where
	possible.
	(common_handle_option): Access option state through opts pointer
	where possible.  Do not set local static variable verbose.  Do not
	explicitly handle OPT_v, OPT_Wstrict_aliasing_,
	OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
	OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
	OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
	OPT_fwhopr_.  Do not explicitly set .opt file variables for
	OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic
	context.
	(set_Wstrict_aliasing): Add gcc_options parameter.
	* opts.h (struct cl_option_handler_func): Add diagnostic_context
	parameter to handler.
	(decode_options): Add diagnostic_context parameter.
	* toplev.c (dump_base_name, dump_dir_name, aux_base_name,
	asm_file_name, flag_generate_lto, flag_gen_aux_info,
	aux_info_file_name, flag_shlib, flag_tls_default,
	flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
	(toplev_main): Pass global_dc to decode_options.
	* toplev.h (dump_base_name, dump_dir_name, aux_base_name,
	aux_info_file_name, asm_file_name): Remove.
	* tree.h (flag_tls_default): Remove.

c-family:
	* c-common.c (parse_optimize_options): Pass global_dc to
	decode_options.
	* c-opts.c (c_common_handle_option): Pass &global_options to
	set_Wstrict_aliasing.
	* c.opt (v): Don't mark Common or document here.

fortran:
	* cpp.c (asm_file_name): Don't declare here.

objc:
	* objc-act.c (dump_base_name): Don't declare here.

From-SVN: r166565
2010-11-10 22:35:13 +00:00
Nicola Pero d36dba0739 In gcc/objc/: 2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-08 22:38:04 +00:00
Nicola Pero 4741888d03 In gcc/objc/: 2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-08 22:04:03 +00:00
Nicola Pero 4ca5d2a7bd In gcc/objc/: 2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-08 21:47:59 +00:00
Nicola Pero a9625a91d2 In gcc/objc/: 2010-11-05 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-06 13:14:55 +00:00
Iain Sandoe 91ebb981ec NS/CF String format syntax parsing.
gcc:

	PR target/44981
	* doc/extend.tex (format): Document NSString extension.
	(format_arg): Likewise.
	(Darwin Format Checks): New section.
	* doc/tm.texi: Document string object hooks (generated).
	* doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
	(TARGET_STRING_OBJECT_REF_TYPE_P): New.
	(TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
	* target.def (objc_construct_string_object): Rename, amend 
	documentation.
	(string_object_ref_type_p): New hook.
	(check_string_object_format_arg): New hook.
	* c-parser.c (c_parser_attributes): Allow objective-c class names as
	attribute identifiers.
	* config/darwin-c.c (darwin_cfstring_ref_p): New.
	(darwin_check_cfstring_format_arg): New.
	(darwin_additional_format_types): New.
	* config/darwin-protos.h (darwin_cfstring_ref_p) New.
	(darwin_check_cfstring_format_arg): New.
	* config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
	(TARGET_STRING_OBJECT_REF_TYPE_P): New.
	(TARGET_N_FORMAT_TYPES): New.
	(TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.

gcc/c-family:

	PR target/44981
	* c-format.c (format_type): New type gcc_objc_string_format_type.
	(valid_stringptr_type_p): New.
	(handle_format_arg_attribute): Use valid_stringptr_type_p ().
	(check_format_string): Pass expected type, use 
	valid_stringptr_type_p (), check that the format string types are
	consistent with the format specification.
	(decode_format_attr): Warn if NSString is used outside objective-c.
	(format_types_orig): Add NSString.
	(format_name): New.
	(format_flags): New.
	(check_format_arg): Handle format strings requiring an external parser.
	first_target_format_type: New variable.
	(handle_format_attribute): Set up first_target_format_type, pass the
	expected format arg string type to check_format_string().
	* c-common.h (FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL):  New flag.
	* stub-objc.c (objc_string_ref_type_p): New.
	(objc_check_format_arg): New.

gcc/objc:

	PR target/44981
	* objc-act.c (objc_build_string_object): Amend for renamed hook.
	(objc_string_ref_type_p): New.
	(objc_check_format_arg): New.

gcc/testsuite:

	PR target/44981
	* gcc.dg/darwin-cfstring-format-1.c: New.
	* gcc.dg/warn-nsstring.c: New.
	* objc.dg/fsf-nsstring-format-1.m: New.
	* obj-c++.dg/fsf-nsstring-format-1.mm: New.
	* obj-c++.dg/torture/strings/const-cfstring-1.mm: Update for darwin10
	linker warning.

From-SVN: r166398
2010-11-06 10:48:18 +00:00
Nicola Pero bede2adc26 In gcc/: 2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-04 20:59:47 +00:00
Nicola Pero 9a179d019f In gcc/c-family/: 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-03 23:52:18 +00:00
Nicola Pero 22d8d61602 In gcc/: 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-03 13:39:39 +00:00
Nicola Pero 43236c265b In gcc/objc/: 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-03 10:39:15 +00:00
Nicola Pero 2debdb4fcd In gcc/c-family/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-01 22:54:35 +00:00
Nicola Pero 8f78939bbf In gcc/objc/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-01 21:12:12 +00:00
Nicola Pero 8f07a2aa35 In gcc/objc/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-11-01 20:06:36 +00:00
Nicola Pero 46a88c1221 In gcc/: 2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-10-30 11:22:46 +00:00
Nicola Pero 200290f239 In gcc/: 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-10-27 05:23:08 +00:00
Nicola Pero f614132bc7 In gcc/: 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-10-27 04:37:47 +00:00
Nicola Pero be8cf3b55e In gcc/cp/: 2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
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
2010-10-24 02:44:03 +00:00
Nicola Pero b8a1880581 In gcc/cp/: 2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
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-23 18:40:39 +00:00
Iain Sandoe 2670598830 CFStrings for Darwin.
gcc:

	Based on the CFString implementation in FSF apple/trunk branch.
	
	* target.def (objc_construct_string): New Hook.
	* doc/tm.texi (objc_construct_string): Document.
	* doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
	* config/t-darwin: Amend build rules for darwin.o.
	* config/darwin.opt: Add cfstrings flags.
	* config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
	(darwin_objc_construct_string): New.
	* config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
	* config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
	* config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
	(darwin_fold_builtin): Likewise.
	(darwin_build_constant_cfstring): Likewise.
	(darwin_objc_construct_string): Likewise.
	(darwin_cfstring_p): Likewise.
	(darwin_enter_string_into_cfstring_table): Likewise.
	* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
	* config/darwin.c (darwin_running_cxx): New var. 
	(machopic_select_section): Return cfstring_constant_object_section.
	(darwin_override_options): Set darwin_running_cxx.
	(add_builtin_field_decl): New.
	(darwin_init_cfstring_builtins): New.
	(darwin_build_constant_cfstring): New.
	(darwin_fold_builtin): New.
	(cfstring_hash): New.
	(cfstring_eq): New.
	(darwin_enter_string_into_cfstring_table): New.
	* config/darwin-sections.def (cfstring_constant_object_section): New.
	* config/darwin.h (TARGET_FOLD_BUILTIN): Define.
	(TARGET_OBJC_CONSTRUCT_STRING): Define.

gcc/objc:

	Based on the CFString implementation in FSF apple/trunk branch.
	
	* objc/objc-act.c (objc_build_string_object): Handle CFStrings.

From-SVN: r165820
2010-10-22 10:28:57 +00:00