summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/obj-c++.dg/attributes/method-attribute-2.mm
Commit message (Collapse)AuthorAgeFilesLines
* In gcc/testsuite/:nicola2011-06-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2011-06-06 Nicola Pero <nicola.pero@meta-innovation.com> Updated all testcases in the ObjC/ObjC++ testsuites to use the Modern Objective-C runtime API. * objc/execute/next_mapping.h: Removed. * objc-obj-c++-shared/next-mapping.h: Removed. * objc-obj-c++-shared/Object1.h: Removed. * objc-obj-c++-shared/Object1.m: Removed. * objc-obj-c++-shared/Object1.mm: Removed. * objc-obj-c++-shared/Object1-implementation.h: Removed. * objc-obj-c++-shared/Protocol1.h: Removed. * objc-obj-c++-shared/objc-test-suite-types.h: Removed definition of ProtoBool, IVAR_T and METHOD. * objc-obj-c++-shared/runtime.h: New. * objc-obj-c++-shared/TestsuiteObject.h: New. * objc-obj-c++-shared/TestsuiteObject.m: New. * objc/compile/trivial.m: Use TestsuiteObject instead of Object. * objc/execute/IMP.m: Include ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C runtime API. ([TestClass -next:]): Made it a class method. * objc/execute/_cmd.m: Include ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C runtime API. ([TestClass +initialize]): Include this method also with the GNU runtime. * objc/execute/accessing_ivars.m: Use TestsuiteObject instead of Object. ([-setValue:]): Return void. * objc/execute/bf-common.h: Do not include objc/objc-encoding.h with the GNU runtime. Include ../../objc-obj-c++-shared/runtime.h. Do not define objc_get_class for the NeXT runtime. Use the existing print_ivars() and compare_structures() implementations for the old NeXT runtime. Added new implementations for the Modern GNU and NeXT runtimes. Enable the testcase (and hence all the bf-* ones) for __OBJC2__ as well. (main): Use objc_getClass(). Use return instead of exit. * objc/execute/bycopy-1.m: Include objc/objc.h instead of ../../objc-obj-c++-shared/Protocol1.h. (main): Use return instead of exit(). * objc/execute/bycopy-2.m: Include objc/objc.h instead of ../../objc-obj-c++-shared/Protocol1.h. Use TestsuiteObject instead of Object. (main): Use return instead of exit(). * objc/execute/bycopy-3.m: Updated includes. Use TestsuiteObject instead of Object. Removed prototype for exit(). (main): Use return instead of exit(). Use the Modern Objective-C runtime API. * objc/execute/cascading-1.m: Use TestsuiteObject instead of Object. * objc/execute/class-tests-1.h: Include ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C runtime API. (test_class_with_superclass): Do not call [Object class]. There is no need to with the current libobjc. * objc/execute/class-tests-2.h: Include ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C runtime API. * objc/execute/class-1.m: Do not include <objc/objc-api.h> and ../../objc-obj-c++-shared/next-mapping.h. * objc/execute/class-2.m: Likewise. * objc/execute/class-3.m: Likewise. * objc/execute/class-4.m: Do not include <objc/objc-api.h> and ../../objc-obj-c++-shared/next-mapping.h. ([RootClass +initialize]): Include this method also with the GNU runtime. (main): Use the Modern Objective-C runtime API. * objc/execute/class-5.m: Likewise. * objc/execute/class-6.m: Likewise. * objc/execute/class-7.m: Likewise. * objc/execute/class-8.m: Likewise. * objc/execute/class-9.m: Likewise. * objc/execute/class-10.m: Likewise. * objc/execute/class-11.m: Likewise. * objc/execute/class-12.m: Likewise. * objc/execute/class-13.m: Likewise. * objc/execute/class-14.m: Likewise. * objc/execute/class_self-1.m ([TestClass +initialize]): Include this method also with the GNU runtime. * objc/execute/class_self-2.m: ([TestClass +initialize], [ClassA +initialize]): Include this method also with the GNU runtime. * objc/execute/compatibility_alias.m: Use TestsuiteObject instead of Object. * objc/execute/encode-1.m: Likewise. * objc/execute/enumeration-1.m: Likewise. * objc/execute/enumeration-2.m: Likewise. * objc/execute/exceptions/catchall-1.m: Likewise. * objc/execute/exceptions/finally-1.m: Likewise. * objc/execute/exceptions/foward-1.m: Likewise. * objc/execute/exceptions/local-variables-1.m: Likewise. * objc/execute/exceptions/throw-nil.m: Likewise. * objc/execute/exceptions/trivial.m: Likewise. * objc/execute/exceptions/handler-1.m: Use TestsuiteObject instead of Object. Include objc/runtime.h instead of objc/objc-api.h. * objc/execute/exceptions/matcher-1.m: Likewise. * objc/execute/formal_protocol-1.m: Use TestsuiteObject instead of Object. * objc/execute/formal_protocol-2.m: Likewise. * objc/execute/formal_protocol-3.m: Likewise. * objc/execute/formal_protocol-4.m: Likewise. * objc/execute/formal_protocol-5.m: Include ../../objc-obj-c++-shared/runtime.h. (main): Always use protocol_getName(). * objc/execute/formal_protocol-6.m: Likewise. * objc/execute/formal_protocol-7.m: Use TestsuiteObject instead of Object. Include <objc/Protocol.h> instead of ../../objc-obj-c++-shared/Protocol1.h. * objc/execute/function-message-1.m: Use TestsuiteObject intead of Object. * objc/execute/informal_protocol.m: Likewise. * objc/execute/load-3.m: Likewise. * objc/execute/many_args_method.m ([TestClass +initialize]): Include this method with the GNU runtime as well. * objc/execute/nested-3.m ([Test +initialize]): Likewise. * objc/execute/nested-func-1.m: Use TestsuiteObject instead of Object. * objc/execute/nil_method-1.m: Likewise. * objc/execute/no_clash.m: Likewise. * objc/execute/np-1.m: Do not include ../../objc-obj-c++-shared/Protocol1.h. (main): Use return instead of exit(). * objc/execute/np-2.m: Do not include ../../objc-obj-c++-shared/Protocol1.h. ([MyObject +initialize]): Include this method also with the GNU runtime. (main): Use return instead of exit(). * objc/execute/object_is_class.m: Include ../../objc-obj-c++-shared/runtime.h. Use TestsuiteObject instead of Object. (main): Use the Modern Objective-C runtime API. * objc/execute/object_is_meta_class.m: Likewise. * objc/execute/private.m: Use TestsuiteObject instead of Object. * objc/execute/protocol-isEqual-1.m: Include objc/Protocol.h instead of ../objc-obj-c++-shared/Protocol1.h. Include ../../objc-obj-c++-shared/runtime.h. (main): Use the Modern Objective-C runtime API. * objc/execute/protocol-isEqual-2.m: Likewise. * objc/execute/protocol-isEqual-3.m: Likewise. * objc/execute/protocol-isEqual-4.m: Likewise. * objc/execute/redefining_self.m ([TestClass +initialize]): Include this method with the GNU runtime as well. * objc/execute/root_methods.m: Include ../../objc-obj-c++-shared/runtime.h. ([RootClass +initialize]): Include this method with the GNU runtime as well. (main): Use the Modern Objective-C runtime API. * objc/execute/selector-1.m: Include ../../objc-obj-c++-shared/runtime.h. Use TestsuiteObject instead of Object. (main): Use the Modern Objective-C runtime API. * objc/execute/static-1.m ([Test +initialize]): Include this method with the GNU runtime as well. * objc/execute/static-2.m: Likewise. * objc/execute/trivial.m: Use TestsuiteObject instead of Object. * objc/execute/va_method.m: Do not include objc/objc-api.h. ([MathClass +initialize]): Include this method with the GNU runtime as well. * objc.dg/attributes/categ-attribute-1.m: Use TestsuiteObject instead of Object. * obj-c++.dg/attributes/categ-attribute-1.mm: Likewise. * objc.dg/attributes/categ-attributes-2.m: Likewise. * obj-c++.dg/attributes/categ-attributes-2.mm: Likewise. * objc.dg/attributes/method-attribute-1.m: Likewise. * obj-c++.dg/attributes/method-attribute-1.mm: Likewise. * objc.dg/attributes/method-attribute-2.m: Likewise. * obj-c++.dg/attributes/method-attribute-2.mm: Likewise. * objc.dg/attributes/method-attribute-3.m: Likewise. * obj-c++.dg/attributes/method-attribute-3.mm: Likewise. * obj-c++.dg/basic.mm: Use TestsuiteObject instead of Object. * objc.dg/bitfield-1.m: Use TestsuiteObject instead of Object. * obj-c++.dg/bitfield-1.mm: Likewise. * obj-c++.dg/bitfield-2.mm: Likewise * objc.dg/bitfield-3.m: Likewise. * obj-c++.dg/bitfield-4.mm: Likewise. * objc.dg/bitfield-5.m: Likewise * objc.dg/call-super-1.m: Likewise. * objc.dg/call-super-2.m: Use TestsuiteObject instead of Object. Use objc_getClass() instead of objc_get_class(), but for the GNU runtime redefine objc_getClass as objc_get_class. Include ../objc-obj-c++-shared/runtime.h. * objc.dg/call-super-3.m: Use TestsuiteObject instead of Object. * objc.dg/category-1.m: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API. * objc.dg/class-protocol-1.m: Include ../objc-obj-c++-shared/runtime.h instead of objc/objc-api.h. * obj-c++.dg/class-protocol-1.mm: Likewise. * objc.dg/comp-types-8.m: Use TestsuiteObject instead of Object. * objc.dg/comp-types-10.m: Likewise. * objc.dg/comp-types-11.m: Likewise. * objc.dg/comp-types-12.m: Likewise. * obj-c++.dg/comp-types-9.mm: Likewise. * obj-c++.dg/comp-types-11.mm: Likewise. * obj-c++.dg/comp-types-12.mm: Likewise. * obj-c++.dg/comp-types-13.mm: Likewise. * obj-c++.dg/cxx-ivars-1.mm: Likewise. * obj-c++.dg/cxx-ivars-2.mm: Likewise. * obj-c++.dg/cxx-scope-1.mm: Likewise. * obj-c++.dg/cxx-scope-2.mm: Likewise. * objc.dg/defs.m: Use TestsuiteObject instead of Object. * objc.dg/desig-init-1.m: Likewise. * obj-c++.dg/defs.mm: Likewise. * objc.dg/exceptions-2.m: Likewise. * obj-c++.dg/except-1.mm: Likewise. * obj-c++.dg/exceptions-2.mm: Likewise. * objc.dg/encode-2.m: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API. * objc.dg/encode-3.m: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API. Do not include ../objc-obj-c++-shared/objc-test-suite-types.h. Define ProtoBool. * objc.dg/encode-4.m: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API except when using an older NeXT runtime. * objc.dg/encode-5.m: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API. * objc.dg/encode-7.m: Include objc/runtime.h instead of objc/encoding.h. * objc.dg/encode-7-next.m: Use TestsuiteObject instead of Object. * objc.dg/encode-7-next-64bit.m: Updated include. * objc.dg/encode-8.m: Include objc/runtime.h instead of objc/encoding.h. * obj-c++.dg/encode-4.mm: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API. * obj-c++.dg/encode-5.mm: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API. Include objc/Protocol.h instead of ../objc-obj-c++-shared/Protocol1.h. * obj-c++.dg/encode-6.mm: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API except when using an older NeXT runtime. * obj-c++.dg/encode-7.mm: Use TestsuiteObject instead of Object. Use the Modern Objective-C runtime API. * objc.dg/fix-and-continue-1.m: Use TestsuiteObject instead of Object. * obj-c++.dg/fix-and-continue-2.mm: Likewise. * objc.dg/fix-and-continue-2.m: Likewise. * objc.dg/foreach-1.m: Likewise. * objc.dg/foreach-2.m: Likewise. * objc.dg/foreach-3.m: Likewise. * objc.dg/foreach-4.m: Likewise. * objc.dg/foreach-5.m: Likewise. * objc.dg/foreach-6.m: Likewise. * objc.dg/foreach-7.m: Likewise. * objc.dg/func-ptr-1.m: Use TestsuiteObject instead of Object. * objc.dg/func-ptr-2.m: Likewise. * objc.dg/fsf-package-0.m: Use TestsuiteObject instead of Object. Do not include objc/objc-api.h. * obj-c++.dg/fsf-package-0.mm: Likewise. * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c (switchfiles): Include objc/runtime.h instead of objc/encoding.h. * objc.dg/gnu-runtime-1.m: Updated to use TestsuiteObject instead of Object. * obj-c++.dg/gnu-runtime-1.mm: Likewise. * objc.dg/gnu-runtime-3.m: Likewise. * obj-c++.dg/gnu-runtime-3.mm: Likewise. * objc.dg/headers.m: Include objc/runtime.h instead of objc/encoding.h for the GNU runtime. Include objc/objc-api.h only for the NeXT runtime. * objc.dg/isa-field-1.m: Use TestsuiteObject instead of Object. * obj-c++.dg/isa-field-1.mm: Likewise. * obj-c++.dg/ivar-list-semi.mm: Likewise. * objc.dg/layout-1.m: Likewise. * objc.dg/layout-2.m: Likewise. * objc.dg/local-decl-2.m: Likewise. * objc.dg/lookup-1.m: Use TestsuiteObject instead of Object. ([Container +elementForView:]): Use class_conformsToProtocol(). * obj-c++.dg/lookup-2.mm: Likewise. * obj-c++.dg/layout-1.mm: Use TestsuiteObject instead of Object. * obj-c++.dg/local-decl-1.mm: Likewise. * objc.dg/method-3.m: Likewise. * objc.dg/method-4.m: Likewise. * objc.dg/method-6.m: Include objc/Protocol.h instead of ../objc-obj-c++-shared/Protocol1.h. * objc.dg/method-7.m: Use TestsuiteObject instead of Object. * objc.dg/method-9.m: Likewise. * objc.dg/method-10.m: Likewise. * objc.dg/method-13.m ([Root +initialize]): Include this method also for the GNU runtime. (main): Use objc_getClass() also for the GNU runtime. * objc.dg/method-15.m: Use TestsuiteObject instead of Object. * objc.dg/method-17.m: Likewise. * objc.dg/method-19.m: Likewise. * objc.dg/method-20b.m: Likewise. * obj-c++.dg/method-2.mm: Likewise. * obj-c++.dg/method-6.mm: Likewise. * obj-c++.dg/method-10.mm: Likewise. * obj-c++.dg/method-11.mm: Likewise. * obj-c++.dg/method-12.mm: Include objc/Protocol.h instead of ../objc-obj-c++-shared/Protocol1.h. * obj-c++.dg/method-13.mm: Use TestsuiteObject instead of Object. * obj-c++.dg/method-15.mm: Likewise. * obj-c++.dg/method-17.mm: Likewise. * obj-c++.dg/method-19.mm: Updated includes. ([Root +initialize]): Include this method also for the GNU runtime. (main): Use objc_getClass() also for the GNU runtime. * obj-c++.dg/method-21.mm: Use TestsuiteObject instead of Object. * obj-c++.dg/method-22.mm: Likewise. * obj-c++.dg/method-23.mm: Likewise. * obj-c++.dg/no-extra-load.mm: Likewise. * objc.dg/objc-fast-4.m: Likewise. * objc.dg/objc-gc-4.m: Likewise. * obj-c++.dg/objc-gc-3.mm: Likewise. * objc.dg/pr18255.m: Include objc/runtime.h. (main): Use protocol_getMethodDescription() instead of [Protocol -descriptionForInstanceMethod]. * objc.dg/pr23214.m ([Object(TS_CAT) -class]): Renamed to test. Made it available with all runtimes. (main): Call -test instead of -class. * objc.dg/pr45878.m ([Object -isEqual:]): Renamed to testIsEqual, and put into a category. * objc.dg/proto-lossage-2.m: Use TestsuiteObject instead of Object. Include objc/objc.h. * obj-c++.dg/proto-lossage-2.mm: Likewise. * objc.dg/proto-lossage-3.m: Updated includes. (MyClass): New. (main): Use protocol_getMethodDescription() instead of [Protocol -descriptionForInstanceMethod] and [Protocol -descriptionForClassMethod]. * obj-c++.dg/proto-lossage-3.mm: Likewise. * objc.dg/proto-qual-1.m: Updated includes. Use the Modern Objective-C runtime API. * obj-c++.dg/proto-qual-1.mm: Likewise. * objc.dg/property/property-1.m: Use TestsuiteObject instead of Object. * obj-c++.dg/property/property-1.mm: Likewise. * obj-c++.dg/qual-types-1.mm: Likewise. * objc.dg/selector-2.m: Include objc/objc.h instead of ../objc-obj-c++-shared/Object1.h. * obj-c++.dg/selector-2.mm: Likewise. * obj-c++.dg/selector-5.mm: Likewise. * obj-c++.dg/selector-6.mm: Likewise. * objc.dg/set-not-used-1.m: Use TestsuiteObject instead of Object. Do not include objc/objc-api.h. * obj-c++.dg/set-not-used-1.mm: Likewise. * objc.dg/sizeof-1.m: Use TestsuiteObject instead of Object. * objc.dg/stret-1.m: Likewise. * objc.dg/stret-2.m: Likewise. * obj-c++.dg/super-class-2.mm: Likewise. * objc.dg/super-class-3.m: Likewise. * objc.dg/super-class-4.m: Likewise. * objc.dg/sync-2.m: Likewise. * obj-c++.dg/sync-2.mm: Likewise. * objc.dg/sync-1.m: Include objc/objc.h instead of ../objc-obj-c++-shared/Object1.h. * objc.dg/special/unclaimed-category-1.h (TestClass): Always use 'Class' as the type of 'isa'. * objc.dg/special/unclaimed-category-1.m: Use the Modern Objective-C runtime API. ([TestClass +initialize]): Include this method with the GNU runtime as well. * objc.dg/strings/strings-1.m: Updated includes. * obj-c++.dg/strings/strings-1.mm: Likewise. * obj-c++.dg/strings/const-str-12.mm: Updated to be identical to objc.dg/strings/const-str-12b.m. * obj-c++.dg/template-1.mm: Use TestsuiteObject intead of Object. * obj-c++.dg/template-3.mm: Likewise. * obj-c++.dg/template-4.mm: Likewise. * objc.dg/threedotthree-abi-1.m: Updated includes. Use Modern Objective-C runtime API. * obj-c++.dg/threedotthree-abi-1.mm: Likewise. * objc.dg/try-catch-1.m: Use TestsuiteObject instead of Object. * obj-c++.dg/try-catch-1.mm: Likewise. * obj-c++.dg/try-catch-2.mm: Likewise. * objc.dg/try-catch-3.m: Likewise. * obj-c++.dg/try-catch-3.mm: Likewise. * objc.dg/try-catch-6.m: Likewise. * objc.dg/try-catch-7.m: Likewise. * obj-c++.dg/try-catch-7.mm: Likewise. * obj-c++.dg/try-catch-8.mm: Likewise. * obj-c++.dg/try-catch-9.mm: Likewise. * objc.dg/try-catch-10.m: Likewise. * obj-c++.dg/try-catch-11.mm: Likewise. * objc.dg/typedef-alias-1.m: Use TestsuiteObject instead of Object. Include objc/objc.h. * obj-c++.dg/typedef-alias-1.mm: Likewise. * objc.dg/type-size-2.m: Use the Modern Objective-C runtime API. * objc.dg/torture/forward-1.m: Use TestsuiteObject intead of Object. Use Modern Objective-C runtime API. Do not use performv::. * objc.dg/torture/trivial.m: Use TestsuiteObject intead of Object. * obj-c++.dg/torture/trivial.mm: Likewise. * objc.dg/torture/strings/const-str-10.m: Include objc/Object.h instead of ../objc-obj-c++-shared/Object1.h. Include ../objc-obj-c++-shared/runtime.h. * obj-c++.dg/torture/strings/const-str-10.mm: Likewise. * objc.dg/torture/strings/const-str-11.m: Likewise. * obj-c++.dg/torture/strings/const-str-11.mm: Likewise. * objc.dg/torture/strings/const-str-9.m: Likewise. * obj-c++.dg/torture/strings/const-str-9.mm: Likewise. * objc.dg/torture/strings/const-str-7.m: Use TestsuiteObject instead of Object. Only add _FooClassReference if __NEXT_RUNTIME__. * obj-c++.dg/torture/strings/const-str-7.mm: Likewise. * objc.dg/torture/strings/const-str-8.m: Likewise. * obj-c++.dg/torture/strings/const-str-8.mm: Likewise. * obj-c++.dg/torture/strings/string1.mm: Updated includes and additional sources. * objc.dg/torture/tls/thr-init-3.m: Use TestsuiteObject instead of Object. * obj-c++.dg/torture/tls/thr-init-3.mm: Likewise. * objc.dg/va-meth-1.m: Use TestsuiteObject instead of Object. * obj-c++.dg/va-meth-1.mm: Likewise. * objc.dg/zero-link-1.m: Include objc/Object.h instead of ../objc-obj-c++-shared/Object1.h. * objc.dg/zero-link-3.m: Likewise. 2011-06-06 Nicola Pero <nicola.pero@meta-innovation.com> * obj-c++.dg/try-catch-2.mm: Fixed unterminated comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174727 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/c-family/:nicola2010-11-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166153 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/cp/:nicola2010-10-241-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165896 138bc75d-0d04-0410-961f-82ee72b054a4
* implement method attributes.iains2010-10-131-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/c-family: merge from FSF apple 'trunk' branch. 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> Radar 3803157 (method attributes) * c-common.c (handle_deprecated_attribute): Recognize objc methods as valid declarations. * c-common.h: Declare objc_method_decl (). * stub-objc.c (objc_method_decl): New stub. gcc/objc: merge from FSF apple 'trunk' branch. 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> Radar 3803157 (method attributes) * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro. * objc/objc-act.c (objc_decl_method_attributes): New. (objc_add_method_declaration): Process method's attribute. (objc_start_method_definition): Ditto. (build_objc_method_call): Inject method attribute into built function type. (objc_method_decl): New. (objc_warn_deprecated)use): New. testsuite: * objc.dg/attributes/method-attribute-1.m: Update to respond to implemented method attributes.. * objc.dg/attributes/method-attribute-2.m: Likewise. * objc.dg/attributes/method-attribute-3.m: Likewise. * obj-c++.dg/attributes/method-attribute-1.mm: Likewise. * obj-c++.dg/attributes/method-attribute-2.mm: Likewise. * obj-c++.dg/attributes/method-attribute-3.mm: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165415 138bc75d-0d04-0410-961f-82ee72b054a4
* add parsing for ObjC* method & method parm attributesiains2010-09-281-0/+31
gcc/cp: Partially merged from apple/trunk branch on FSF servers: 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> Radar 3803157 (method attributes) * parser.c (cp_parser_objc_method_keyword_params): Handle attributes. (cp_parser_objc_method_tail_params_opt): Likewise. (cp_parser_objc_method_signature): Likewise. (cp_parser_objc_method_maybe_bad_prefix_attributes): New. (cp_parser_objc_method_prototype_list): Handle attributes. (cp_parser_objc_method_definition_list): Likewise. gcc/objc: * objc-act.c (objc_add_method_declaration): Handle attributes. (objc_start_method_definition): Likewise. (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor. (objc_build_keyword_decl): Handle attributes. gcc: * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix attributes on methods. (c_parser_objc_method_definition): Handle attributes. (c_parser_objc_methodproto): Likewise. (c_parser_objc_maybe_method_attributes): New. (c_parser_objc_method_decl): Handle attributes, add a similar diagnostic to ObjC++ for a missing definition. gcc/c-family: * c-common.h: Update declarations to include attributes. * stub-objc.c: Likewise. testsuite: * objc.dg/attributes/method-attribute-1.m: New. * objc.dg/attributes/method-attribute-2.m: New. * obj-c++.dg/attributes/method-attribute-1.m: New. * obj-c++.dg/attributes/method-attribute-2.m: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164702 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud