This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/51243] New: internal compiler error: in verify_gimple_stmt, at tree-cfg.c:4235


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]