This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c/4142: gcc compiles C code with assignments to const variables
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c/4142: gcc compiles C code with assignments to const variables
- From: RDahlsted at aol dot com
- Date: 27 Aug 2001 17:58:23 -0000
- Reply-To: RDahlsted at aol dot com
>Number: 4142
>Category: c
>Synopsis: gcc compiles C code with assignments to const variables
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Aug 27 11:06:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Richard Dahlstedt
>Release: gcc-2.7.2, gcc-2.95.2
>Organization:
>Environment:
Solaris 2.5 (gcc-2.7.2), Solaris 5.7 (gcc-2.95.2)
>Description:
When compiling C code, this apparently is resolved when using g++ instead of gcc or when compiling C++ code through gcc (as it presumably will call g++), gcc will issue a warning about assignment to a const variable but will allow this to occur any way and create the executable. Even when using the -ansi and -pedantic flags gcc will still create the executable with assignments being made to the const variable. Unless I am missing something about the C standard and other C/C++ compiler vendors apparently agree with me, in that there products do not allow such to occur, I would like to know why gcc allows this C-specific issue to occur.
>How-To-Repeat:
#include <stdio.h>
void main(void)
{
const int i = 0;
i = 1;
printf("i = %i\n", i);
i = 2;
printf("i = %i\n", i);
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: