http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49938
Summary: [4.7 regression] ICE in interpret_loop_phi, at tree-scalar-evolution.c:1645 Product: gcc Version: 4.7.0 URL: Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: mar...@trippelsdorf.de This ICE happened when building chromium. Testcase reduced with multidelta: % cat test.cpp #include <vector> #include <unistd.h> typedef unsigned short uint16; namespace base { class StringPiece { public: typedef size_t size_type; size_type size() const { return length_; } size_type length_; }; } namespace net { class DNSSECKeySet { bool CheckSignature (const base::StringPiece& name, const base::StringPiece& zone, const base::StringPiece& signature, uint16 rrtype, const std::vector<base::StringPiece>& rrdatas); }; } template <class C> class scoped_array { public: typedef C element_type; explicit scoped_array(C* p = __null):array_(p) {} private: C* array_; }; namespace net { bool DNSSECKeySet::CheckSignature (const base::StringPiece& name, const base::StringPiece& zone, const base::StringPiece& signature, uint16 rrtype, const std::vector<base::StringPiece>& rrdatas) { unsigned signed_data_len = 0; for (std::vector<base::StringPiece>::const_iterator i = rrdatas.begin(); i != rrdatas.end(); i++) { signed_data_len += 2; signed_data_len += i->size(); } scoped_array<unsigned char> signed_data(new unsigned char[signed_data_len]); } } % g++ -O test.cpp test.cpp: In member function ‘bool net::DNSSECKeySet::CheckSignature(const base::StringPiece&, const base::StringPiece&, const base::StringPiece&, uint16, const std::vector<base::StringPiece>&)’: test.cpp:31:7: internal compiler error: in interpret_loop_phi, at tree-scalar-evolution.c:1645 Please submit a full bug report, with preprocessed source if appropriate.