aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendan Kehoe <brendan@gcc.gnu.org>1996-06-19 15:19:27 -0400
committerBrendan Kehoe <brendan@gcc.gnu.org>1996-06-19 15:19:27 -0400
commitfbe912dd099f284e1db21de74ea40ad81e72c84e (patch)
tree4c64258057e83e5dfb958636fad0c5e36ec817d1
parentd9ad9b6ca3432147e6846cc862ab813d63e1e097 (diff)
downloadgcc-fbe912dd099f284e1db21de74ea40ad81e72c84e.zip
gcc-fbe912dd099f284e1db21de74ea40ad81e72c84e.tar.gz
gcc-fbe912dd099f284e1db21de74ea40ad81e72c84e.tar.bz2
toplev.c (flag_keep_static_consts): Define.
* toplev.c (flag_keep_static_consts): Define. (f_options): Add "keep-static-consts" entry. (compile_file): Check it in addition to !optimize for emitting static const variables. From-SVN: r12310
-rw-r--r--gcc/toplev.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index fd64361..37579a5 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -460,6 +460,11 @@ int flag_keep_inline_functions;
int flag_no_inline;
+/* Nonzero means that we should emit static const variables
+ regardless of whether or not optimization is turned on. */
+
+int flag_keep_static_consts = 1;
+
/* Nonzero means we should be saving declaration info into a .X file. */
int flag_gen_aux_info = 0;
@@ -575,6 +580,7 @@ struct { char *string; int *variable; int on_value;} f_options[] =
{"inline-functions", &flag_inline_functions, 1},
{"keep-inline-functions", &flag_keep_inline_functions, 1},
{"inline", &flag_no_inline, 0},
+ {"keep-static-consts", &flag_keep_static_consts, 1},
{"syntax-only", &flag_syntax_only, 1},
{"shared-data", &flag_shared_data, 1},
{"caller-saves", &flag_caller_saves, 1},
@@ -2360,7 +2366,8 @@ compile_file (name)
/* Don't write out static consts, unless we still need them.
- We also keep static consts if not optimizing (for debugging).
+ We also keep static consts if not optimizing (for debugging),
+ unless the user specified -fno-keep-static-consts.
??? They might be better written into the debug information.
This is possible when using DWARF.
@@ -2385,7 +2392,7 @@ compile_file (name)
if (TREE_CODE (decl) == VAR_DECL && TREE_STATIC (decl)
&& (! TREE_READONLY (decl)
|| TREE_PUBLIC (decl)
- || !optimize
+ || (!optimize && flag_keep_static_consts)
|| TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))))
{
reconsider = 1;