This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/79654] New: [7 Regression] ICE on invalid c++ code in register_dtor_fn in cp/decl.c:7877
- From: "marxin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 21 Feb 2017 08:27:54 +0000
- Subject: [Bug c++/79654] New: [7 Regression] ICE on invalid c++ code in register_dtor_fn in cp/decl.c:7877
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79654
Bug ID: 79654
Summary: [7 Regression] ICE on invalid c++ code in
register_dtor_fn in cp/decl.c:7877
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: ice-on-invalid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
Created attachment 40792
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40792&action=edit
test-case
Also adopted from clang, however this one is very recent regression (started
with r245218):
$ g++
/home/marxin/BIG/Programming/llvm-project/llvm/tools/clang/test/CodeGenCXX/cxx1z-decomposition.cpp
-std=c++14
...
/home/marxin/BIG/Programming/llvm-project/llvm/tools/clang/test/CodeGenCXX/cxx1z-decomposition.cpp:
In function ‘void __static_initialization_and_destruction_0(int, int)’:
/home/marxin/BIG/Programming/llvm-project/llvm/tools/clang/test/CodeGenCXX/cxx1z-decomposition.cpp:44:6:
internal compiler error: tree check: expected class ‘type’, have ‘exceptional’
(error_mark) in register_dtor_fn, at cp/decl.c:7877
auto [d1, d2] = make<D>();
^~~~~~~~
0x1541400 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
../../gcc/tree.c:9866
0x80d58e tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
../../gcc/tree.h:3187
0x85f3cc register_dtor_fn(tree_node*)
../../gcc/cp/decl.c:7877
0x9680f0 one_static_initialization_or_destruction
../../gcc/cp/decl2.c:3756
0x9685f7 do_static_initialization_or_destruction
../../gcc/cp/decl2.c:3843
0x96ad87 c_parse_final_cleanups()
../../gcc/cp/decl2.c:4602
0xb8ea37 c_common_parse_file()
../../gcc/c-family/c-opts.c:1134