------- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-14 15:02 ------- Confirmed, here is a testcase which is valid code (yes I checked to make sure that it is valid):
namespace util { class persistent_object_manager; namespace memory { class pointer_manipulator { friend class persistent_object_manager; }; } } namespace util { using namespace memory; class persistent_object_manager { }; template <class T> class persistent_traits { friend class persistent_object_manager; }; } static util::persistent_traits<int> __blah__; : Search converges between 2004-11-25-014001-trunk (#656) and 2004-11-25-161001-trunk (#657). I think this is very related to PR 4403 (it might be fixed by that patch too). And related to PR 19403. -- What |Removed |Added ---------------------------------------------------------------------------- OtherBugsDependingO| |16995 nThis| | Status|UNCONFIRMED |NEW Ever Confirmed| |1 Keywords| |ice-on-valid-code, rejects- | |valid Last reconfirmed|0000-00-00 00:00:00 |2005-02-14 15:02:03 date| | Summary|ICE: tree check: expected |[4.0 Regression] ICE: tree |class 'declaration', have |check: expected class |'exceptional' (error_mark) |'declaration', have |in pushtag, at cp/name- |'exceptional' (error_mark) |lookup.c:4658 |in pushtag, at cp/name- | |lookup.c:4658 Target Milestone|--- |4.0.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19948