diff options
author | obrien <obrien@FreeBSD.org> | 2002-05-09 20:02:13 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-05-09 20:02:13 +0000 |
commit | c8f5fc7032940ad6633f932ac40cade82ec4d0cc (patch) | |
tree | 29a0f0a6c79a69ecc64f612947a0fe5904311713 /contrib/gcc/objc/objc-act.c | |
parent | c9ab9ae440a8066b2c2b85b157b1fdadcf09916a (diff) | |
download | FreeBSD-src-c8f5fc7032940ad6633f932ac40cade82ec4d0cc.zip FreeBSD-src-c8f5fc7032940ad6633f932ac40cade82ec4d0cc.tar.gz |
Gcc 3.1.0 pre-release from the FSF anoncvs repo on 9-May-2002 15:57:15 EDT.
Diffstat (limited to 'contrib/gcc/objc/objc-act.c')
-rw-r--r-- | contrib/gcc/objc/objc-act.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/contrib/gcc/objc/objc-act.c b/contrib/gcc/objc/objc-act.c index 91b2223..02cb099 100644 --- a/contrib/gcc/objc/objc-act.c +++ b/contrib/gcc/objc/objc-act.c @@ -1773,7 +1773,7 @@ build_module_descriptor () c_expand_expr_stmt (decelerator); - finish_function (0); + finish_function (0, 0); return XEXP (DECL_RTL (init_function_decl), 0); } @@ -2393,6 +2393,13 @@ objc_copy_list (list, head) while (list) { tail = copy_node (list); + + /* The following statement fixes a bug when inheriting instance + variables that are declared to be bitfields. finish_struct + expects to find the width of the bitfield in DECL_INITIAL. */ + if (DECL_BIT_FIELD (tail) && DECL_INITIAL (tail) == 0) + DECL_INITIAL (tail) = DECL_SIZE (tail); + newlist = chainon (newlist, tail); list = TREE_CHAIN (list); } @@ -7300,7 +7307,7 @@ void finish_method_def () { lang_expand_function_end = objc_expand_function_end; - finish_function (0); + finish_function (0, 1); lang_expand_function_end = NULL; /* Required to implement _msgSuper. This must be done AFTER finish_function, @@ -8323,7 +8330,7 @@ handle_impent (impent) string = (char *) alloca (strlen (class_name) + 30); - sprintf (string, "*%sobjc_class_name_%s", + sprintf (string, "%sobjc_class_name_%s", (flag_next_runtime ? "." : "__"), class_name); } else if (TREE_CODE (impent->imp_context) == CATEGORY_IMPLEMENTATION_TYPE) |