diff options
author | Stan Shebs <shebs@apple.com> | 2001-12-28 23:22:05 +0000 |
---|---|---|
committer | Stan Shebs <shebs@gcc.gnu.org> | 2001-12-28 23:22:05 +0000 |
commit | 51a56a7d474daf301f46324da38208835a524f2c (patch) | |
tree | 16cc0c286d32484983410e291a463ab7db481967 /gcc/objc | |
parent | fae81b385b8b6dc357a802edfe8082817acfdc27 (diff) | |
download | gcc-51a56a7d474daf301f46324da38208835a524f2c.tar.gz |
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
Diffstat (limited to 'gcc/objc')
-rw-r--r-- | gcc/objc/objc-act.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 96e13237b24..8dd08011177 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), |