The following code causes the error: internal compiler error: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9868 (I am using the debian gcc-snapshot 20100117)
It compiles fine with g++-4.4. I have seen similar bug reports in bugzilla, but they are all marked either as fixed or as not-a-regression, so I am adding this here, sorry if this is a duplicate. template <class T> struct vector{}; struct Traits{struct Primitive{struct Id{};};}; template <class Tree, class Polyhedron> struct Tree_vs_naive { typedef typename Tree::Primitive Primitive; void f() const { typedef vector<typename Primitive::Id> Id_vector; } }; template <class Tree> void test_hint_strategies() { vector<typename Tree::Primitive::Id> v; } int main(void) { test_hint_strategies<Traits>(); } -- Summary: ICE in tree-check, accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9868 Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: marc dot glisse at normalesup dot org GCC host triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42820