This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Are string literals _always_ allocated in the RO section?
- From: Denis Zaitsev <zzz at anda dot ru>
- To: gcc at gcc dot gnu dot org, linux-gcc at vger dot kernel dot org
- Date: Sun, 16 Jan 2005 02:22:48 +0500
- Subject: Are string literals _always_ allocated in the RO section?
This program:
void x(char *s)
{
*s= 'x';
}
main()
{
x("y");
}
is compiled plainly but cathes SIGSEGV in the
*s= 'x'
line. And it's because the string "y" is put in the .text section.
And the fact that the x()'s parm is explicitly declared as <char*>,
not <const char*> does nothing in this case. Should it be considered
as a bug?