http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53882
Bug #: 53882 Summary: [4.6/4.7 Regression] ICE in type_contains_placeholder_1, at tree.c:3015 Classification: Unclassified Product: gcc Version: 4.7.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: d...@gcc.gnu.org seen with the 4.7 branch 20120704 and trunk, works with 4.6: $ g++ -std=c++0x -c -O foo.cc foo.cc: In constructor 'std::function<_Res(_ArgTypes ...)>::function(_Functor) [with _Functor = std::_Bind<std::_Mem_fn<void (User::*)(void*)>(User*, std::nullptr_t)>; <template-parameter-2-2> = void; _Res = void; _ArgTypes = {}]': foo.cc:12:1: internal compiler error: in type_contains_placeholder_1, at tree.c:3015 } ^ Please submit a full bug report, with preprocessed source if appropriate. #include <functional> struct User { void run(void *) {} }; int main() { User u; std::function<void()> p = std::bind(&User::run, &u, nullptr); }