http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53209
Bug #: 53209 Summary: tree check ICE: expected tree_vec, have error_mark in comp_template_args_with_info, at cp/pt.c:7038 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: jamb...@gcc.gnu.org CC: tmsri...@google.com Host: i686-pc-linux-gnu Target: i686-pc-linux-gnu Created attachment 27302 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27302 Testcase Hi, starting with revision 186789, a native i686 compiler ICEs on the attached testcase with the following message: -------------------------------------------------- jamborm@gcc45:~/tmp$ ~/gcc/trunk/inst/bin/g++ -g -O2 -D_GNU_SOURCE -c -fPIC -std=gnu++11 -fno-implicit-templates functexcept.ii In file included from /home/mjambor/gcc/trunk/obj/i686-pc-linux-gnu/libstdc++-v3/include/future:38:0, from /home/mjambor/gcc/trunk/src/libstdc++-v3/src/c++11/functexcept.cc:32: /home/mjambor/gcc/trunk/obj/i686-pc-linux-gnu/libstdc++-v3/include/functional: In member function ‘std::__regex::_StateIdT std::__regex::_Nfa::_M_insert_accept()’: /home/mjambor/gcc/trunk/obj/i686-pc-linux-gnu/libstdc++-v3/include/functional:2057:63: internal compiler error: tree check: expected tree_vec, have error_mark in comp_template_args_with_info, at cp/pt.c:7038 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -------------------------------------------------- I'm sorry the testcase is not at all reduced but multidelta has only managed to produce something that makes GCC run out of memory on my i686 desktop. I may try again over the next night. One particular problem with this ICE is that starting with revision 186948 (a libstdc++ change), I cannot build gcc on my i686 desktop, (which means that until this is resolved I cannot follow trunk when doing my work!), although I do not have this problem on a i686 machine on the compile farm (gcc45). However, when I take the pre-processed source to that machine, the trunk compiler ICEs there too (with the same exact error). The ICE has started to appear with the following commit (that is the reason why I filed the component as target): ------------------------------------------------------------------------ r186789 | tmsriram | 2012-04-25 02:08:37 +0200 (Wed, 25 Apr 2012) | 61 lines 2012-04-24 Sriraman Tallam <tmsri...@google.com> This patch adds new builtins to check for cpu type and features. * __builtin_cpu_is ("<CPUNAME>") * __builtin_cpu_supports ("<FEATURE>") apart from the cpu init builtin, __builtin_cpu_init. List of CPU names : * "amd" * "intel" * "atom" * "core2" * "corei7" * "nehalem" * "westmere" * "sandybridge" * "amdfam10h" * "barcelona" * "shanghai" * "istanbul" * "bdver1" * "bdver2" List of CPU features : * "cmov" * "mmx" * "popcnt" * "sse" * "sse2" * "sse3" * "ssse3" * "sse4.1" * "sse4.2" * "avx" * config/i386/i386.c (build_processor_model_struct): New function. (make_var_decl): New function. (fold_builtin_cpu): New function. (ix86_fold_builtin): New function. (make_cpu_type_builtin): New function. (ix86_init_platform_type_builtins): New function. (ix86_expand_builtin): Expand new builtins by folding them. (ix86_init_builtins): Make new builtins to detect CPU type. (TARGET_FOLD_BUILTIN): New macro. (IX86_BUILTIN_CPU_INIT): New enum value. (IX86_BUILTIN_CPU_IS): New enum value. (IX86_BUILTIN_CPU_SUPPORTS): New enum value. * config/i386/i386-builtin-types.def: New function type. * testsuite/gcc.target/builtin_target.c: New testcase. * doc/extend.texi: Document builtins. * libgcc/config/i386/i386-cpuinfo.c: New file. * libgcc/config/i386/t-cpuinfo: New file. * libgcc/config.host: Include t-cpuinfo. * libgcc/config/i386/libgcc-glibc.ver: Version symbol __cpu_model.