c++ bug regarding type handling
>Submitter-Id: net
>Originator: Sascha Krissler
>Organization:
>Confidential: no
>Synopsis: c++ bug regarding type handling
>Severity: critical
>Priority: low
>Category: c++
>Class: ice-on-illegal-code
>Release: 3.3.2 20030908 (Debian prerelease) (Debian testing/unstable)
>Environment:
System: Linux test 2.6.0 #1 Fri Jan 2 18:54:53 CET 2004 i686 GNU/Linux
Architecture: i686
host: i486-pc-linux-gnu
build: i486-pc-linux-gnu
target: i486-pc-linux-gnu
configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
>Description:
i am not sure if there is a workaround to the problem, because
it happens at the declaration
...
template <typename CONFIG>
class Environment {
...
which is completely legal, albeit sourrounded by rather complex
code which uses templates excessively.
the same code gives two different ICEs with the same code with
g++-3.0 and g++-3.3, others not tested.
If you want the Environment.ii file please write me mail, it
is 1.3 MB and i dont want to paste it into this text.
Maybe an option to attach a file would be a useful feature for gccbug.
at the bottom you can see the outputs.
Thanks a lot for your help and your compiler :).
gcc command line:
g++-3.3 -O2 -g -I/home/sascha/cppextension -I/usr/lib/dispatch/template-instances.cpp -I/usr/lib/dispatch/pattern.cpp -I/home/sascha/cppextension -I/usr/lib/dispatch/dispatch.cpp -I. -c -save-temps -o Environment.o Environment.cpp
g++-3.0 output (substitute 'g++-3.3' with 'g++-3.0' in command line):
/usr/lib/dispatch/dispatch.cpp/Dispatch/Environment.hpp: In instantiation of `Dispatch::Environment<Instance::Config>':
Environment.cpp:4: instantiated from here
/usr/lib/dispatch/dispatch.cpp/Dispatch/Environment.hpp:75: Internal compiler
error in dbxout_type, at dbxout.c:1643
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
g++-3.3 output:
/usr/lib/dispatch/dispatch.cpp/Dispatch/Inherit.hpp: In instantiation of `Dispatch::Inherit<Instance::Config>':
/usr/lib/dispatch/dispatch.cpp/Dispatch/Environment.hpp:82: instantiated from `Dispatch::Environment<Instance::Config>'
Environment.cpp:4: instantiated from here
/usr/lib/dispatch/dispatch.cpp/Dispatch/Inherit.hpp:167: internal compiler error: in
is_base_type, at dwarf2out.c:7851
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
>How-To-Repeat:
>Fix:
Reply to: