[Bug c++/20475] New: static_cast falsely allows const to be cast away

dcb314 at hotmail dot com gcc-bugzilla@gcc.gnu.org
Mon Mar 14 19:02:00 GMT 2005


I just tried the following block of C++ code with g++ 20050311, the
latest snapshot.

void f()
{
        char * pj2 = static_cast < char * > ("fred");
}

The compiler said

dcb@linux:~/C++/src> ~/gnu/20050311/results/bin/g++ -c sc.cc

I added more flags

dcb@linux:~/C++/src> ~/gnu/20050311/results/bin/g++ -g -O2 -Wall -ansi -pedantic
-c sc.cc
sc.cc: In function `void f()':
sc.cc:5: warning: unused variable 'pj2'
dcb@linux:~/C++/src>

However, my reading of Stroustrup 3, page 414, section 15.4.2.1 says that
static_cast can't be used to cast away const.

I think the compiler should complain about the above code. Here is Intel C++ 8.1
doing what I want.

sc.cc(5): error: static_cast cannot cast away const or other type qualifiers
        char * pj2 = static_cast < char * > ("fred");
                     ^

This example derived from real code in Suse Linux 9.2

-- 
           Summary: static_cast falsely allows const to be cast away
           Product: gcc
           Version: 3.4.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dcb314 at hotmail dot com
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20475



More information about the Gcc-bugs mailing list