------- Comment #3 from jan dot kratochvil at redhat dot com 2010-07-23 11:11 ------- (In reply to comment #1) > const int i; -fno-zero-initialized-in-bss -> .bss = FAIL > You need -fno-common also to get it out of the BSS.
-fno-common now at least correctly reports: echo 'const int i;'|gcc -fno-common -c -o k.o -x c -;echo 'const int i;main(){}'|gcc -fno-common -c -o l.o -x c -;gcc -fno-common -o k k.o l.o l.o:(.bss+0x0): multiple definition of `i' k.o:(.bss+0x0): first defined here So it is no longer SHN_COMMON, thanks. But reopening the Bug as it is still in .bss, not in .rodata. echo 'const int i;int main(){return *(int *)&i = 0;}'|gcc -fno-common -Wall -o 1 -x c -;./1;echo $? 0 [25] .bss NOBITS 0000000000600818 00000814 0000000000000018 0000000000000000 WA 0 0 8 Num: Value Size Type Bind Vis Ndx Name 55: 0000000000600828 4 OBJECT GLOBAL DEFAULT 25 i It should SEGV but it does not. -f{,no-}zero-initialized-in-bss has no effect on it. -- jan dot kratochvil at redhat dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|INVALID | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44690