aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Shebs <shebs@apple.com>2001-12-28 23:22:05 +0000
committerStan Shebs <shebs@gcc.gnu.org>2001-12-28 23:22:05 +0000
commit51a56a7d474daf301f46324da38208835a524f2c (patch)
tree16cc0c286d32484983410e291a463ab7db481967
parentfae81b385b8b6dc357a802edfe8082817acfdc27 (diff)
downloadgcc-51a56a7d474daf301f46324da38208835a524f2c.zip
gcc-51a56a7d474daf301f46324da38208835a524f2c.tar.gz
gcc-51a56a7d474daf301f46324da38208835a524f2c.tar.bz2
objc-act.c (build_module_descriptor): Make sure the init function is not deferred.
* objc/objc-act.c (build_module_descriptor): Make sure the init function is not deferred. (build_dispatch_table_initializer): Compute the method encoding if not already done. From-SVN: r48356
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/objc/objc-act.c8
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b990544..895a9af 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2001-12-28 Stan Shebs <shebs@apple.com>
+
+ * objc/objc-act.c (build_module_descriptor): Make sure the init
+ function is not deferred.
+ (build_dispatch_table_initializer): Compute the method encoding if
+ not already done.
+
2001-12-28 Kazu Hirata <kazu@hxi.com>
* doc/md.texi: Add @findex define_insn_and_split.
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 96e1323..8dd0801 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -1763,6 +1763,9 @@ build_module_descriptor ()
init_function_decl = current_function_decl;
TREE_PUBLIC (init_function_decl) = ! targetm.have_ctors_dtors;
TREE_USED (init_function_decl) = 1;
+ /* Don't let this one be deferred. */
+ DECL_INLINE (init_function_decl) = 0;
+ DECL_UNINLINABLE (init_function_decl) = 1;
current_function_cannot_inline
= "static constructors and destructors cannot be inlined";
@@ -3856,6 +3859,11 @@ build_dispatch_table_initializer (type, entries)
build_selector (METHOD_SEL_NAME (entries)),
NULL_TREE);
+ /* Generate the method encoding if we don't have one already. */
+ if (! METHOD_ENCODING (entries))
+ METHOD_ENCODING (entries) =
+ encode_method_def (METHOD_DEFINITION (entries));
+
elemlist = tree_cons (NULL_TREE,
add_objc_string (METHOD_ENCODING (entries),
meth_var_types),