https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100409
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, doesn't quite work. FAIL: g++.dg/cpp0x/sfinae19.C -std=c++14 (internal compiler error) FAIL: g++.dg/cpp0x/sfinae22.C -std=c++14 (internal compiler error) FAIL: g++.dg/cpp1y/pr61636-2.C -std=c++14 (internal compiler error) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for errors, line 79) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for warnings, line 80) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for warnings, line 82) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for warnings, line 83) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for warnings, line 84) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for warnings, line 85) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for warnings, line 88) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (internal compiler error) FAIL: g++.dg/warn/noeffect4.C -std=gnu++14 (test for excess errors) the ICE is /home/rguenther/src/trunk/gcc/testsuite/g++.dg/cpp0x/sfinae19.C:8:30: internal compiler error: in check_noexcept_r, at cp/except.c:1053^M if ((code == CALL_EXPR && CALL_EXPR_FN (t)) || code == AGGR_INIT_EXPR) { /* We can only use the exception specification of the called function for determining the value of a noexcept expression; we can't use TREE_NOTHROW, as it might have a different value in another translation unit, creating ODR problems. We could use TREE_NOTHROW (t) for !TREE_PUBLIC fns, though... */ tree fn = cp_get_callee (t); if (concept_check_p (fn)) return NULL_TREE; tree type = TREE_TYPE (fn); gcc_assert (INDIRECT_TYPE_P (type)); where the type is likely the lang_type in: <call_expr 0x7ffff65504d0 fn <component_ref 0x7ffff66b34e0 type <lang_type 0x7ffff66851f8 unknown type type <lang_type 0x7ffff66851f8 unknown type> VOID align:1 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff66851f8 pointer_to_this <lang_type 0x7ffff66851f8 unknown type> reference_to_this <lang_type 0x7ffff66851f8 unknown type>> whatever that exactly is, it isn't a reference or pointer type. processing_template_decl is true in this context, but if we assume that in this context expr_noexcept_p is true we probably miss diagnostics. Jason, any idea?