This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 4.1.1: char *p = "str" puts "str" into rodata
- From: Andrew Haley <aph at redhat dot com>
- To: Denis Vlasenko <vda dot linux at googlemail dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Sun, 28 Jan 2007 16:15:08 +0000
- Subject: Re: gcc 4.1.1: char *p = "str" puts "str" into rodata
- References: <200701281657.07030.vda.linux@googlemail.com>
[ off-topic for gcc; redirected to gcc-help ]
Denis Vlasenko writes:
> char p;
> int main() {
> p = "";
> return 0;
> }
This is odd code: you're assigning a pointer to a string to a char
variable.
> Don't you think that "" should end up in rw data?
No: it's a literal string. Many, many years ago, C compilers put
literal strings into read/write memory and it was possible to alter
them, but C89 outlawed that practice.
Andrew.