summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/objc/objc-act.c12
-rw-r--r--libobjc/ChangeLog5
-rw-r--r--libobjc/objc/objc-api.h4
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a13721257e6..bfcf1fb1bac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-06 Ziemowit Laski <zlaski@apple.com>
+
+ * objc/objc-act.c (build_super_template) the 'class' field of
+ 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
+ (get_super_receiver): Likewise.
+
2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
* reload1.c (check_eliminable_occurrences): Optimize the reset
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index c29c4fa6aea..70434c53dad 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -4344,11 +4344,19 @@ build_super_template (void)
field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
field_decl_chain = field_decl;
+#ifdef OBJCPLUS
+ /* struct objc_class *super_class; */
+#else
/* struct objc_class *class; */
+#endif
decl_specs = get_identifier (UTAG_CLASS);
decl_specs = build_tree_list (NULL_TREE, xref_tag (RECORD_TYPE, decl_specs));
+#ifdef OBJCPLUS
+ field_decl = build1 (INDIRECT_REF, NULL_TREE, get_identifier ("super_class"));
+#else
field_decl = build1 (INDIRECT_REF, NULL_TREE, get_identifier ("class"));
+#endif
field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
chainon (field_decl_chain, field_decl);
@@ -7883,7 +7891,11 @@ get_super_receiver (void)
/* Set class to begin searching. */
super_expr = build_component_ref (UOBJC_SUPER_decl,
+#ifdef OBJCPLUS
+ get_identifier ("super_class"));
+#else
get_identifier ("class"));
+#endif
if (TREE_CODE (objc_implementation_context) == CLASS_IMPLEMENTATION_TYPE)
{
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index cf2fe5f73ac..bc769460d89 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-06 Ziemowit Laski <zlaski@apple.com>
+
+ * objc/objc-api.h (objc_super): The 'class' field shall
+ be named 'super_class' #ifdef __cplusplus.
+
2004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
PR target/10781
diff --git a/libobjc/objc/objc-api.h b/libobjc/objc/objc-api.h
index b50fa1bda90..dc8af068f0e 100644
--- a/libobjc/objc/objc-api.h
+++ b/libobjc/objc/objc-api.h
@@ -342,7 +342,11 @@ typedef struct objc_category {
typedef struct objc_super {
id self; /* Id of the object sending
the message. */
+#ifdef __cplusplus
+ Class super_class;
+#else
Class class; /* Object's super class. */
+#endif
} Super, *Super_t;
IMP objc_msg_lookup_super(Super_t super, SEL sel);