Trying to build the Chromium browser with trunk shows: markus@x4 Release % g++ -c -fno-strict-aliasing -O2 WebDOMActivityLogger.ii ../../third_party/WebKit/Source/web/WebDOMActivityLogger.cpp:102:1: internal compiler error: in get_untransformed_body, at cgraph.c:3268 } // namespace blink ^ 0x909133 cgraph_node::get_untransformed_body() ../../gcc/gcc/cgraph.c:3268 0x914c2f cgraph_node::expand() ../../gcc/gcc/cgraphunit.c:1955 0x9164e0 expand_all_functions ../../gcc/gcc/cgraphunit.c:2119 0x9164e0 symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2472 0x918a57 symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2536 0x918a57 symbol_table::finalize_compilation_unit() ../../gcc/gcc/cgraphunit.c:2562 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. Reducing...
markus@x4 Release % cat WebDOMActivityLogger.ii template <typename T> struct A { static void deletePtr(T *p1) { delete p1; } }; template <typename> class PassOwnPtr; template <typename T> PassOwnPtr<T> adoptPtr(T *); template <typename T> class PassOwnPtr { public: template <typename U> PassOwnPtr(U); ~PassOwnPtr() { A<T>::deletePtr(m_ptr); } T *m_ptr; }; class WebDOMActivityLogger { public: virtual ~WebDOMActivityLogger() {} }; class V8DOMActivityLogger { public: void operator delete(void *); virtual ~V8DOMActivityLogger() {} static void setActivityLogger(int, PassOwnPtr<V8DOMActivityLogger>); }; WebDOMActivityLogger *a; int b; void setDOMActivityLogger() { V8DOMActivityLogger::setActivityLogger(b, adoptPtr(a)); }
confirmed.
Seems to be fixed. Closing.