aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2002-03-02 03:52:17 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2002-03-02 03:52:17 +0000
commit27b41650c178510367442f1a41b4c7a13915056d (patch)
tree75fe6685e297fa2a98efab337e910c5a2c995d5f /gcc/varasm.c
parentca734b39f3a1dff4206545b43068998b2bf7821b (diff)
downloadgcc-27b41650c178510367442f1a41b4c7a13915056d.zip
gcc-27b41650c178510367442f1a41b4c7a13915056d.tar.gz
gcc-27b41650c178510367442f1a41b4c7a13915056d.tar.bz2
Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
* Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss. * doc/invoke.texi (-fno-zero-initialized-in-bss): Document. * flags.h (flag_zero_initialized_in_bss): Declare. * toplev.c (flag_zero_initialized_in_bss): New flag. (lang_independent_options): Add flag_zero_initialized_in_bss. * tree.c (initializer_zerop): New function. * tree.h (initializer_zerop): Declare. * varasm.c (assemble_variable): If we can emit bss, put zero initializers in the bss section. From-SVN: r50218
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index f8fb16c..e7505a8 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -1608,7 +1608,12 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
/* Handle uninitialized definitions. */
- if ((DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node)
+ if ((DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node
+#if defined ASM_EMIT_BSS
+ || (flag_zero_initialized_in_bss
+ && initializer_zerop (DECL_INITIAL (decl)))
+#endif
+ )
/* If the target can't output uninitialized but not common global data
in .bss, then we have to use .data. */
#if ! defined ASM_EMIT_BSS