http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55041
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-10-28 13:37:31 UTC --- Sorry, I misread that output, it does know the right type, it just doesn't match the printer for some reason (gdb) ptype sp1 type = class std::shared_ptr<int> : public std::__shared_ptr<int, (__gnu_cxx::_Lock_policy)2> { public: void shared_ptr(void); void shared_ptr(const std::shared_ptr<int> &); void shared_ptr(<unknown type in /dev/shm/a.out, CU 0x0, DIE 0x127f>); void shared_ptr(std::nullptr_t); std::shared_ptr<int> & operator=(const std::shared_ptr<int> &); std::shared_ptr<int> & operator=(<unknown type in /dev/shm/a.out, CU 0x0, DIE 0x12e3>); void shared_ptr<int, deleter>(int *, deleter); } (I'll file a separate bug about the "unknown type" error for the shared_ptr&& type)