This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/35384] Variables declared as 'static char * avar = "some string";' cannot be modified
- From: "Quinlan at ACM dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 26 Feb 2008 21:05:38 -0000
- Subject: [Bug c/35384] Variables declared as 'static char * avar = "some string";' cannot be modified
- References: <bug-35384-15831@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from Quinlan at ACM dot org 2008-02-26 21:05 -------
If the problem is that the char pointer is pointing to a constant value in:
static char * avar = "some string";
then perhaps initializing with an array of one string as in this line work:
static char * avar = {"some string"};
That approach doesn't work. Converting avar from a pointer to an array like
this however does work:
static char avar[] = {"some string"};
This provides a simple workaround that we will use for now. The big problem
remaining is: There are inconsistent behaviors exhibited in these tests. The
previous approach works, but it still is allowing a constant value to be
modified. Is this a bug that may be fixed in the future and break our
applications, or can we expect the C standard be upgraded at some point to
provide for this type of behavior?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35384