This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/51243] New: internal compiler error: in verify_gimple_stmt, at tree-cfg.c:4235
- From: "3dw4rd at verizon dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 20 Nov 2011 18:42:22 +0000
- Subject: [Bug c++/51243] New: internal compiler error: in verify_gimple_stmt, at tree-cfg.c:4235
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51243
Bug #: 51243
Summary: internal compiler error: in verify_gimple_stmt, at
tree-cfg.c:4235
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: 3dw4rd@verizon.net
The following code ICES on 4.7 (not on anything earlier).
------------------------------------------------------------------------
// g++ -std=c++0x -c stringarray.cpp
// ./bin/bin/g++ -std=c++11 -c stringarray.cpp
#include <string>
#include <array>
std::array<std::string, 2> strings1 = { "a", "b" };
std::array<std::string, 2> strings2 = {{ "a", "b" }};
//std::array<std::string, 2> strings3({ "a", "b" });
------------------------------------------------------------------------
If the last line is uncommented, it gets an error about "no matching function
for call" as it should. No ICE.
Interestingly if the second declaration is commented the first declaration
ICES.
Maybe that is not surprising as this is code generation. I think syntactically
the first two decls are legal. If the third one is uncommented you get an
error and no ICE. If the third is commented either or both of the first two
decls pass but crash on gimplification.