-fno-common
Iain Sandoe
idsandoe@googlemail.com
Tue Jan 29 08:29:00 GMT 2019
> On 28 Jan 2019, at 15:58, Bernhard Schommer <bernhardschommer@gmail.com> wrote:
>
> I would like to know if the handling of the option -fno-common has
> changed between version 7.3 and 8.2 for x86. I tried it with the
> default system version of OpenSUSE and for example:
>
> const int i;
>
> is placed in the .bss section. With a newer self-compiled version 8.2
> the same variable is placed in the section .rodata. I could not find
> any information in the Changelog whether the behavior has changed and
> thus would like to know if there was any change.
If you look in of, say, http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
at section
• 6.7.3 Type qualifiers
there’s a footnote:
• 132) The implementation may place a const object that is not volatile in a read-only region of storage. Moreover, the implementation need not allocate storage for such an object if its address is never used.
---
So, I don’t think you can make any assumption about whether such items appear in bss or .rodata (or const on darwin, for example).
HTH,
Iain
More information about the Gcc
mailing list