Commit 36d010ca by Bryce McKinlay Committed by Bryce McKinlay

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.

From-SVN: r54430
parent 5f555088
2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 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 * gjavah.c (throwable_p): Accept argument as either a classname or
signature fragment. Create null-terminated classname string for super signature fragment. Create null-terminated classname string for super
when calling itself recursively. when calling itself recursively.
......
...@@ -51,6 +51,8 @@ struct string_option ...@@ -51,6 +51,8 @@ struct string_option
static const char *java_init PARAMS ((const char *)); static const char *java_init PARAMS ((const char *));
static void java_finish PARAMS ((void)); static void java_finish PARAMS ((void));
static void java_init_options 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 int java_decode_option PARAMS ((int, char **));
static void put_decl_string PARAMS ((const char *, int)); static void put_decl_string PARAMS ((const char *, int));
static void put_decl_node PARAMS ((tree)); static void put_decl_node PARAMS ((tree));
...@@ -170,6 +172,10 @@ int flag_store_check = 1; ...@@ -170,6 +172,10 @@ int flag_store_check = 1;
/* When non zero, print extra version information. */ /* When non zero, print extra version information. */
static int version_flag = 0; 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. /* Table of language-dependent -f options.
STRING is the option name. VARIABLE is the address of the variable. STRING is the option name. VARIABLE is the address of the variable.
ON_VALUE is the value to store in VARIABLE ON_VALUE is the value to store in VARIABLE
...@@ -228,6 +234,8 @@ struct language_function GTY(()) ...@@ -228,6 +234,8 @@ struct language_function GTY(())
#define LANG_HOOKS_INIT_OPTIONS java_init_options #define LANG_HOOKS_INIT_OPTIONS java_init_options
#undef LANG_HOOKS_DECODE_OPTION #undef LANG_HOOKS_DECODE_OPTION
#define LANG_HOOKS_DECODE_OPTION java_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 #undef LANG_HOOKS_PARSE_FILE
#define LANG_HOOKS_PARSE_FILE java_parse_file #define LANG_HOOKS_PARSE_FILE java_parse_file
#undef LANG_HOOKS_MARK_ADDRESSABLE #undef LANG_HOOKS_MARK_ADDRESSABLE
...@@ -388,6 +396,14 @@ java_decode_option (argc, argv) ...@@ -388,6 +396,14 @@ java_decode_option (argc, argv)
return 1; return 1;
} }
#undef ARG #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') if (p[0] == '-' && p[1] == 'f')
{ {
...@@ -763,4 +779,16 @@ java_init_options () ...@@ -763,4 +779,16 @@ java_init_options ()
flag_trapping_math = 0; 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" #include "gt-java-lang.h"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment