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.

Reply via email to