Hello, try to compile this code:

class G
 {
  public:
   G();
   ~G();
   bool test() const;
   int *x;
 };

G::G()
 {
  x=new int[7];
  x[3]=99;
 }

G::~G()
 {
  delete[] x;
 }

bool G::test() const
 {
  x[3]--;
  return true;
 }

I used
g++ -W -Wall -ansi -pedantic G.cpp -c -o G.o
and it gives no errors, so *x isn't considered to be const, but IMHO it should
be.

I use this gcc:
Reading specs from /usr/lib/gcc/i586-uhu-linux/3.4.5/specs
Configured with: /var/uhubuild/work/compile/configure --prefix=/usr
--infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++
--enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib
--host=i586-uhu-linux
Thread model: posix
gcc version 3.4.5


-- 
           Summary: const vs. almost-const
           Product: gcc
           Version: 3.4.5
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pentek_imre at mailbox dot hu
  GCC host triplet: i586-uhu-linux


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

Reply via email to