diff options
author | Bryce McKinlay <bryce@waitaki.otago.ac.nz> | 2002-06-10 05:11:42 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2002-06-10 06:11:42 +0100 |
commit | 36d010cabfac9532fcd0bc5e52ea2b2bf941e4ba (patch) | |
tree | 99001a6d7eab93aa8b30cb236349b128c025b9d3 /gcc | |
parent | 5f555088adbd3bf7253fd5b567f44a3c11999124 (diff) | |
download | gcc-36d010cabfac9532fcd0bc5e52ea2b2bf941e4ba.zip gcc-36d010cabfac9532fcd0bc5e52ea2b2bf941e4ba.tar.gz gcc-36d010cabfac9532fcd0bc5e52ea2b2bf941e4ba.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/java/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/java/lang.c | 28 |
2 files changed, 38 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 7813997..a77445d 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,5 +1,15 @@ 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 signature fragment. Create null-terminated classname string for super when calling itself recursively. diff --git a/gcc/java/lang.c b/gcc/java/lang.c index a0f823f..60dc67b 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -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" |