Got ICE compiling boost-1.32 with 4.0.0 20050223 preprocessed file: http://napalm.sf.cz/xml_oarchive.ii.gz # g++ -v ./xml_oarchive.ii Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc/configure --enable-languages=c,c++ --enable-threads=posix --enable-share Thread model: posix gcc version 4.0.0 20050223 (experimental) /usr/local/libexec/gcc/i686-pc-linux-gnu/4.0.0/cc1plus -fpreprocessed ./xml_oarchive.ii -quiet -dumpbase xml_oarchive.ii -mtune=pentiumpro -auxbase xml_oarchive -version -o /tmp/ccN4IMmj.s GNU C++ version 4.0.0 20050223 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.0.0 20050223 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 ./boost/archive/detail/oserializer.hpp: In static member function 'static void boost::archive::detail::save_enum_type<Archive, T>::invoke(Archive&, const T&)': ./boost/archive/detail/oserializer.hpp:491: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Confirmed. Reduced testcase: ====================================== template<typename T> void foo(T &t) { int i = static_cast<int>(t); } ======================================
Hmm, this is a really new bug as it works with 20050218.
*** Bug 20341 has been marked as a duplicate of this bug. ***
Subject: Bug 20186 CVSROOT: /cvs/gcc Module name: gcc Changes by: nathan@gcc.gnu.org 2005-03-09 12:57:14 Modified files: gcc/cp : ChangeLog pt.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/template: non-dependent12.C Log message: cp: PR c++/20186 * pt.c (contains_dependent_cast_p): New. (fold_non_dependent_expr): Call it. testsuite: PR c++/20186 * g++.dg/template/non-dependent12.C: New. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4655&r2=1.4656 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&r1=1.979&r2=1.980 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5130&r2=1.5131 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/non-dependent12.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
Subject: Bug 20186 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-4_0-branch Changes by: nathan@gcc.gnu.org 2005-03-09 13:14:58 Modified files: gcc/cp : ChangeLog pt.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/template: non-dependent12.C Log message: cp: PR c++/20186 * pt.c (contains_dependent_cast_p): New. (fold_non_dependent_expr): Call it. testsuite: PR c++/20186 * g++.dg/template/non-dependent12.C: New. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4648.2.6&r2=1.4648.2.7 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.978.2.1&r2=1.978.2.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.27&r2=1.5084.2.28 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/non-dependent12.C.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
2005-03-08 Nathan Sidwell <nathan@codesourcery.com> PR c++/20186 * pt.c (contains_dependent_cast_p): New. (fold_non_dependent_expr): Call it.
inappropriate fix
Subject: Bug 20186 CVSROOT: /cvs/gcc Module name: gcc Changes by: nathan@gcc.gnu.org 2005-03-17 13:26:42 Modified files: gcc/cp : ChangeLog pt.c Log message: cp: PR c++/20186 * pt.c (contains_dependent_cast_p): Remove. (fold_non_dependent_expr): Don't use it. (value_dependent_expression_p): Use a switch statement. reference_exprs can be dependent. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4663&r2=1.4664 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&r1=1.984&r2=1.985
Subject: Bug 20186 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-4_0-branch Changes by: nathan@gcc.gnu.org 2005-03-17 13:30:57 Modified files: gcc/cp : ChangeLog pt.c Log message: cp: PR c++/20186 * pt.c (contains_dependent_cast_p): Remove. (fold_non_dependent_expr): Don't use it. (value_dependent_expression_p): Reference_exprs can be dependent. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4648.2.10&r2=1.4648.2.11 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.978.2.4&r2=1.978.2.5
4.0 2005-03-17 Nathan Sidwell <nathan@codesourcery.com> PR c++/20186 * pt.c (contains_dependent_cast_p): Remove. (fold_non_dependent_expr): Don't use it. (value_dependent_expression_p): Reference_exprs can be dependent. HEAD 2005-03-17 Nathan Sidwell <nathan@codesourcery.com> PR c++/20186 * pt.c (contains_dependent_cast_p): Remove. (fold_non_dependent_expr): Don't use it. (value_dependent_expression_p): Use a switch statement. reference_exprs can be dependent.