Removed conflict in usage of TYPE_LANG_SLOT_0 between Objective-C and C
From-SVN: r170436
This commit is contained in:
parent
21e1e594a9
commit
79d822528c
@ -1,3 +1,10 @@
|
||||
2011-02-23 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* objc-act.c (build_private_template): Do not copy the
|
||||
CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
|
||||
* objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
|
||||
TYPE_LANG_SLOT_0.
|
||||
|
||||
2011-02-22 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
PR objc/47832
|
||||
|
@ -4203,9 +4203,6 @@ build_private_template (tree klass)
|
||||
/* Copy the attributes from the class to the type. */
|
||||
if (TREE_DEPRECATED (klass))
|
||||
TREE_DEPRECATED (record) = 1;
|
||||
|
||||
if (CLASS_HAS_EXCEPTION_ATTR (klass))
|
||||
CLASS_HAS_EXCEPTION_ATTR (record) = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -164,9 +164,7 @@ typedef enum objc_property_assign_semantics {
|
||||
#define CLASS_CATEGORY_LIST(CLASS) TREE_VEC_ELT (TYPE_LANG_SLOT_1 (CLASS), 3)
|
||||
#define CLASS_PROTOCOL_LIST(CLASS) TREE_VEC_ELT (TYPE_LANG_SLOT_1 (CLASS), 4)
|
||||
#define TOTAL_CLASS_RAW_IVARS(CLASS) TREE_VEC_ELT (TYPE_LANG_SLOT_1 (CLASS), 5)
|
||||
|
||||
/* FIXME */
|
||||
#define CLASS_HAS_EXCEPTION_ATTR(CLASS) ((CLASS)->type.lang_flag_0)
|
||||
#define CLASS_HAS_EXCEPTION_ATTR(CLASS) (TYPE_LANG_FLAG_0 (CLASS))
|
||||
|
||||
#define PROTOCOL_NAME(CLASS) ((CLASS)->type.name)
|
||||
#define PROTOCOL_LIST(CLASS) TREE_VEC_ELT (TYPE_LANG_SLOT_1 (CLASS), 0)
|
||||
|
@ -1,3 +1,7 @@
|
||||
2011-02-23 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* objc.dg/attributes/objc-exception-1.m: New.
|
||||
|
||||
2011-02-23 Jie Zhang <jie@codesourcery.com>
|
||||
|
||||
* gcc.dg/cpp/include7.c: New test.
|
||||
|
32
gcc/testsuite/objc.dg/attributes/objc-exception-1.m
Normal file
32
gcc/testsuite/objc.dg/attributes/objc-exception-1.m
Normal file
@ -0,0 +1,32 @@
|
||||
/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, February 2011. */
|
||||
/* { dg-do compile } */
|
||||
|
||||
/* Test that the 'objc_exception' attribute is accepted for
|
||||
@interfaces, but not for anything else. */
|
||||
|
||||
#include <objc/objc.h>
|
||||
|
||||
/* Fine. */
|
||||
__attribute__ ((objc_exception))
|
||||
@interface MyClass
|
||||
{
|
||||
Class isa;
|
||||
}
|
||||
@end
|
||||
|
||||
/* Fine. */
|
||||
__attribute__ ((__objc_exception__))
|
||||
@interface MyClass2
|
||||
{
|
||||
Class isa;
|
||||
}
|
||||
@end
|
||||
|
||||
__attribute__ ((objc_exception))
|
||||
@protocol MyProtocol; /* { dg-warning "ignored" } */
|
||||
|
||||
__attribute__ ((objc_exception))
|
||||
int myVariable; /* { dg-warning "ignored" } */
|
||||
|
||||
__attribute__ ((objc_exception))
|
||||
int myFunction (int argument); /* { dg-warning "ignored" } */
|
Loading…
Reference in New Issue
Block a user