diff options
| author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-10 05:11:42 +0000 | 
|---|---|---|
| committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-10 05:11:42 +0000 | 
| commit | 08cb25b34934ce594d9f56eb9c56ef96ad6fedb4 (patch) | |
| tree | 99001a6d7eab93aa8b30cb236349b128c025b9d3 /gcc | |
| parent | 9e60f7e2a37b17b8f95e3ea4c2a832f00486f562 (diff) | |
| download | ppe42-gcc-08cb25b34934ce594d9f56eb9c56ef96ad6fedb4.tar.gz ppe42-gcc-08cb25b34934ce594d9f56eb9c56ef96ad6fedb4.zip  | |
	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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54430 138bc75d-0d04-0410-961f-82ee72b054a4
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 7813997fc4d..a77445dbe86 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 a0f823f75b7..60dc67b5054 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"  | 

