aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2004-06-15 12:46:07 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2004-06-15 12:46:07 +0000
commit096f22f42494fad3990d6a2d74a9844dd6af977b (patch)
treeaf8f6b819cf8320c57100f0ded0f5d0bdbae5c96 /gcc/java
parent8cff2a9522fcd7b7af3181f73aa91a2fce666722 (diff)
downloadgcc-096f22f42494fad3990d6a2d74a9844dd6af977b.zip
gcc-096f22f42494fad3990d6a2d74a9844dd6af977b.tar.gz
gcc-096f22f42494fad3990d6a2d74a9844dd6af977b.tar.bz2
function.h (struct function): Remove cannot_inline field.
gcc/ChangeLog: 2004-06-15 Paolo Bonzini <bonzini@gnu.org> * function.h (struct function): Remove cannot_inline field. (current_function_cannot_inline): Remove. * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. Simplify conditionals to ignore warn_return_type. * tree-optimize.c (tree_rest_of_compilation): Do not reset DECL_DEFER_OUTPUT. * objc/objc-act.c (build_module_descriptor, finish_method_def): Do not set current_function_cannot_inline. gcc/java/ChangeLog: 2004-06-15 Paolo Bonzini <bonzini@gnu.org> * class.c (emit_register_classes): Make the function uninlinable, do not set current_function_cannot_inline. * resource.c (write_resource_constructor): Do not reset flag_inline_functions around rest_of_compilation. gcc/cp/ChangeLog: 2004-06-15 Paolo Bonzini <bonzini@gnu.org> * cp-tree.h (struct language_function): Remove cannot_inline. * decl.c (save_function_data): cannot_inline is no more. (cxx_push_function_context): Likewise. * decl2.c (start_objects, start_static_storage_duration_function): Reset DECL_INLINE, set DECL_UNINLINABLE. From-SVN: r83181
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog7
-rw-r--r--gcc/java/class.c6
-rw-r--r--gcc/java/resource.c12
3 files changed, 13 insertions, 12 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 6c8af8a..b142752 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,10 @@
+2004-06-15 Paolo Bonzini <bonzini@gnu.org>
+
+ * class.c (emit_register_classes): Make the function uninlinable,
+ do not set current_function_cannot_inline.
+ * resource.c (write_resource_constructor): Do not reset
+ flag_inline_functions around rest_of_compilation.
+
2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
PR java/15769
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 137b647..57107dd 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -2293,6 +2293,8 @@ emit_register_classes (void)
DECL_SOURCE_LINE (init_decl) = 0;
TREE_STATIC (init_decl) = 1;
current_function_decl = init_decl;
+ DECL_INLINE (init_decl) = 0;
+ DECL_UNINLINABLE (init_decl) = 1;
DECL_RESULT (init_decl) = build_decl (RESULT_DECL, NULL_TREE,
void_type_node);
@@ -2308,10 +2310,6 @@ emit_register_classes (void)
init_function_start (init_decl);
expand_function_start (init_decl, 0);
- /* Do not allow the function to be deferred. */
- current_function_cannot_inline
- = "static constructors and destructors cannot be inlined";
-
for ( t = registered_class; t; t = TREE_CHAIN (t))
emit_library_call (registerClass_libfunc, 0, VOIDmode, 1,
XEXP (DECL_RTL (t), 0), Pmode);
diff --git a/gcc/java/resource.c b/gcc/java/resource.c
index dc42a6f..5ebbf5e 100644
--- a/gcc/java/resource.c
+++ b/gcc/java/resource.c
@@ -151,14 +151,10 @@ write_resource_constructor (void)
input_location = DECL_SOURCE_LOCATION (init_decl);
expand_function_end ();
poplevel (1, 0, 1);
- {
- /* Force generation, even with -O3 or deeper. Gross hack.
- FIXME. */
- int saved_flag = flag_inline_functions;
- flag_inline_functions = 0;
- rest_of_compilation (init_decl);
- flag_inline_functions = saved_flag;
- }
+
+ /* rest_of_compilation forces generation even if -finline-functions. */
+ rest_of_compilation (init_decl);
+
current_function_decl = NULL_TREE;
if (targetm.have_ctors_dtors)
targetm.asm_out.constructor (XEXP (DECL_RTL (init_decl), 0),