> cat bug.ii bool f(); struct counted_base { virtual void destroy() { } void release() { if (f()) destroy(); } };
struct shared_count { shared_count() { } ~shared_count() { if (pi) pi->release(); } shared_count(shared_count& r) : pi(r.pi) { if (pi) pi->release(); } counted_base* pi; }; struct Foo; struct shared_ptr { Foo& operator*() { return *ptr; } Foo* ptr; shared_count refcount; }; struct Bar { Bar(Foo&, shared_ptr); }; void g() { shared_ptr foo; new Bar(*foo, foo); } > g++ -O2 -ftree-vectorize bug.ii bug.ii: In function void g(): bug.ii:27:6: internal compiler error: in vectorizable_load, at tree-vect-stmts.c:3812 I'm using SVN revision tr...@161911 on linux_x86_64. -- Summary: internal compiler error: in vectorizable_load, at tree- vect-stmts.c:3812 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: wouter dot vermaelen at scarlet dot be http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44861