The bug was discovered using the line in the summary, but a reduced test case also produces the ICE:
namespace N1 { template<class T> bool foo(); } } int main() { decltype(N1::foo<int>) a; } I believe this is ice-on-valid since removing the template like so: namespace N1 { bool foo(); } int main() { decltype(N1::foo) a; } makes "a" a function type 'bool(void)'. -- Summary: ICE on decltype(rel_ops::operator><int>); Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: chris dot fairles at gmail dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37177