[Bug target/53209] New: tree check ICE: expected tree_vec, have error_mark in comp_template_args_with_info, at cp/pt.c:7038
jamborm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu May 3 10:57:00 GMT 2012
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: unassigned@gcc.gnu.org
ReportedBy: jamborm@gcc.gnu.org
CC: tmsriram@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 <tmsriram@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.
More information about the Gcc-bugs
mailing list