Bug 7737 - g++ ver 3.2 Internal Compiler Error
Summary: g++ ver 3.2 Internal Compiler Error
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 3.2
: P2 critical
Target Milestone: ---
Assignee: Gabriel Dos Reis
URL:
Keywords: ice-on-valid-code
: 11294 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-08-27 13:36 UTC by dwelter
Modified: 2003-07-25 17:33 UTC (History)
4 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments
Cell.ii.gz (101.25 KB, application/x-gzip )
2003-05-21 15:16 UTC, dwelter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description dwelter 2002-08-27 13:36:00 UTC
g++ -v -save-temps -fPIC -I/u01/hsm/local/include/c++/3.2 -c -g -I. -I/opt/local/share/include -I/opt/local/share/include -L/opt/local/share/lib -I/u01/hsm/apps/petsc/petsc-2.1.3 -I/u01/hsm/apps/petsc/petsc-2.1.3/bmake/linux -I/u01/hsm/apps/petsc/petsc-2.1.3/include -I/u01/hsm/apps/petsc/petsc-2.1.3/src/sys/src/mpiuni -DPETSC_HAVE_X11 -DPETSC_USE_DEBUG -DPETSC_USE_LOG -DPETSC_USE_BOPT_g -DPETSC_USE_STACK -D__SDIR__="" Cell.cc > & error.txt

Reading specs from /u01/hsm/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/specs
Configured with: /u01/hsm/apps/gcc_3.2_source/gcc-3.2/configure --prefix=/u01/hsm/local
Thread model: posix
gcc version 3.2
 /u01/hsm/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/cpp0 -lang-c++ -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -v -I/u01/hsm/local/include/c++/3.2 -I. -I/opt/local/share/include -I/opt/local/share/include -I/u01/hsm/apps/petsc/petsc-2.1.3 -I/u01/hsm/apps/petsc/petsc-2.1.3/bmake/linux -I/u01/hsm/apps/petsc/petsc-2.1.3/include -I/u01/hsm/apps/petsc/petsc-2.1.3/src/sys/src/mpiuni -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ -D__PIC__ -D__pic__ -DPETSC_HAVE_X11 -DPETSC_USE_DEBUG -DPETSC_USE_LOG -DPETSC_USE_BOPT_g -DPETSC_USE_STACK -D__SDIR__= Cell.cc Cell.ii
GNU CPP version 3.2 (cpplib) (i386 Linux/ELF)
ignoring nonexistent directory "/u01/hsm/local/i686-pc-linux-gnu/include"
ignoring duplicate directory "/opt/local/share/include"
cpp0: warning: changing search order for system directory "/u01/hsm/local/include/c++/3.2"
cpp0: warning:   as it has already been specified as a non-system directory
ignoring duplicate directory "/u01/hsm/local/include/c++/3.2"
#include "..." search starts here:
#include <...> search starts here:
 /u01/hsm/local/include/c++/3.2
 .
 /opt/local/share/include
 /u01/hsm/apps/petsc/petsc-2.1.3
 /u01/hsm/apps/petsc/petsc-2.1.3/bmake/linux
 /u01/hsm/apps/petsc/petsc-2.1.3/include
 /u01/hsm/apps/petsc/petsc-2.1.3/src/sys/src/mpiuni
 /u01/hsm/local/include/c++/3.2/i686-pc-linux-gnu
 /u01/hsm/local/include/c++/3.2/backward
 /usr/local/include
 /u01/hsm/local/include
 /u01/hsm/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include
 /usr/include
End of search list.
 /u01/hsm/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/cc1plus -fpreprocessed Cell.ii -quiet -dumpbase Cell.cc -g -version -fPIC -o Cell.s
GNU CPP version 3.2 (cpplib) (i386 Linux/ELF)
GNU C++ version 3.2 (i686-pc-linux-gnu)
	compiled by GNU C version 3.2.
Cell.cc: In member function `Point2D Cell::OLVector() const':
Cell.cc:100: Internal compiler error in resolve_offset_ref, at cp/init.c:1886
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

Release:
3.2

Environment:
System: Linux linuxserv1 2.4.7-10smp #1 SMP Thu Sep 6 17:09:31 EDT 2001 i686 unknown
Architecture: i686

        <machine, os, target, libraries (multiple lines)>
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: /u01/hsm/apps/gcc_3.2_source/gcc-3.2/configure --prefix=/u01/hsm/local
Comment 1 Gabriel Dos Reis 2002-08-28 06:09:52 UTC
Responsible-Changed-From-To: unassigned->gdr
Responsible-Changed-Why: Mine.
Comment 2 Gabriel Dos Reis 2002-08-28 06:09:52 UTC
State-Changed-From-To: open->closed
State-Changed-Why: Fixed in GCC-3.3
Comment 3 Gabriel Dos Reis 2002-08-28 15:04:40 UTC
From: Gabriel Dos Reis <gdr@integrable-solutions.net>
To: Reichelt <reichelt@igpm.rwth-aachen.de>
Cc: gcc-gnats@gcc.gnu.org, dwelter@sfwmd.gov, gcc-bugs@gcc.gnu.org,
   nobody@gcc.gnu.org
Subject: Re: c++/7737: g++ ver 3.2 Internal Compiler Error
Date: 28 Aug 2002 15:04:40 +0200

 Reichelt <reichelt@igpm.rwth-aachen.de> writes:
 
 | Hi,
 | 
 | the problem can be demonstrated with the following code snippet:
 | 
 | -----------------------------snip here----------------------------
 | struct A { void foo(); };
 | void bar () { &(A::foo); }
 | -----------------------------snip here----------------------------
 
 You're right, I fixed this very bug a while ago (but it didn't make it
 into 3.2).
 
 -- Gaby
Comment 4 Volker Reichelt 2002-08-28 15:21:50 UTC
From: Reichelt <reichelt@igpm.rwth-aachen.de>
To: gcc-gnats@gcc.gnu.org, dwelter@sfwmd.gov, gcc-bugs@gcc.gnu.org,
        nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/7737: g++ ver 3.2 Internal Compiler Error
Date: Wed, 28 Aug 2002 15:21:50 +0200

 Hi,
 
 the problem can be demonstrated with the following code snippet:
 
 -----------------------------snip here----------------------------
 struct A { void foo(); };
 void bar () { &(A::foo); }
 -----------------------------snip here----------------------------
 
 which is in fact illegal code. One should write "&A::foo" instead of
 "&(A::foo)". In the original code you have to replace "&(Wall::...Flow)"
 by "&Wall::...Flow" in the functions "Cell::OLVector()",
 "Cell::GWVector()" and "Cell::TotalVector()" to make things compile.
 
 The failures of gcc with the code snippet are quite interesting:
 * With gcc 2.95.x the code compiles using "g++ -c" (even with
   "-pedantic" turned on), which is wrong.
 * With gcc 3.0.x I get the error message
   PR7737.cc: In function `void bar()':
   PR7737.cc:2: warning: statement cannot resolve address of overloaded function
   which is bogus
 * With 3.1 and 3.2 I get an ICE:
   PR7737.cc: In function `void bar()':
   PR7737.cc:2: Internal compiler error in resolve_offset_ref, at cp/init.c:1886
 
 However with the main trunk (gcc 3.3 20020816) I get the right diagnostic:
   PR7737.cc: In function `void bar()':
   PR7737.cc:2: error: parenthesis around 'A::foo()' cannot be used to form a 
      pointer-to-member-function
 
 Greetings,
 Volker Reichelt
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7737
 
 
Comment 5 Volker Reichelt 2003-06-23 16:08:39 UTC
*** Bug 11294 has been marked as a duplicate of this bug. ***