Don't use RTL inlining. Fix for PR java/6820.
authorBryce McKinlay <bryce@waitaki.otago.ac.nz>
Mon, 10 Jun 2002 05:11:42 +0000 (05:11 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Mon, 10 Jun 2002 05:11:42 +0000 (06:11 +0100)
* lang.c (LANG_HOOKS_POST_OPTIONS): Define.
(flag_really_inline): New.
(java_decode_option): Set flag_really_inline if -finline-functions
is seen.
(java_post_options): New function. Turn off inlining unless
flag_really_inline is set.

From-SVN: r54430

gcc/java/ChangeLog
gcc/java/lang.c

index 7813997fc4d1e2196aa3b8a06a98bc801cbbb98e..a77445dbe865812f1f508a8beeb13822ed38e0a4 100644 (file)
@@ -1,3 +1,13 @@
+2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
+
+       Don't use RTL inlining. Fix for PR java/6820.
+       * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
+       (flag_really_inline): New.
+       (java_decode_option): Set flag_really_inline if -finline-functions
+       is seen.
+       (java_post_options): New function. Turn off inlining unless
+       flag_really_inline is set.
+
 2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
 
        * gjavah.c (throwable_p): Accept argument as either a classname or 
index a0f823f75b7ac363011703ca80ef7e6ae82024c3..60dc67b5054dbd242215c6cb80ba64850cdf8d18 100644 (file)
@@ -51,6 +51,8 @@ struct string_option
 static const char *java_init PARAMS ((const char *));
 static void java_finish PARAMS ((void));
 static void java_init_options PARAMS ((void));
+static void java_post_options PARAMS ((void));
+
 static int java_decode_option PARAMS ((int, char **));
 static void put_decl_string PARAMS ((const char *, int));
 static void put_decl_node PARAMS ((tree));
@@ -170,6 +172,10 @@ int flag_store_check = 1;
 /* When non zero, print extra version information.  */
 static int version_flag = 0;
 
+/* Set non-zero if the user specified -finline-functions on the command 
+   line.  */
+int flag_really_inline = 0;
+
 /* Table of language-dependent -f options.
    STRING is the option name.  VARIABLE is the address of the variable.
    ON_VALUE is the value to store in VARIABLE
@@ -228,6 +234,8 @@ struct language_function GTY(())
 #define LANG_HOOKS_INIT_OPTIONS java_init_options
 #undef LANG_HOOKS_DECODE_OPTION
 #define LANG_HOOKS_DECODE_OPTION java_decode_option
+#undef LANG_HOOKS_POST_OPTIONS
+#define LANG_HOOKS_POST_OPTIONS java_post_options
 #undef LANG_HOOKS_PARSE_FILE
 #define LANG_HOOKS_PARSE_FILE java_parse_file
 #undef LANG_HOOKS_MARK_ADDRESSABLE
@@ -388,6 +396,14 @@ java_decode_option (argc, argv)
       return 1;
     }
 #undef ARG
+#define ARG "-finline-functions"
+  if (strncmp (p, ARG, sizeof (ARG) - 1) == 0)
+    {
+      flag_inline_functions = 1;
+      flag_really_inline = 1;
+      return 1;
+    }
+#undef ARG
 
   if (p[0] == '-' && p[1] == 'f')
     {
@@ -763,4 +779,16 @@ java_init_options ()
   flag_trapping_math = 0;
 }
 
+/* Post-switch processing.  */
+static void
+java_post_options ()
+{
+  /* Turn off RTL inliner unless -finline-functions was really specified.  */
+  if (flag_really_inline == 0)
+    {
+      flag_no_inline = 1;
+      flag_inline_functions = 0;
+    }
+}
+
 #include "gt-java-lang.h"