http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61080
--- Comment #6 from Paolo Carlini <paolo.carlini at oracle dot com> --- This (rather heavy handed?) tweak also appears to work (with it these deleted functions can keep flowing through instantiate_decl): Index: pt.c =================================================================== --- pt.c (revision 210126) +++ pt.c (working copy) @@ -19888,7 +19888,7 @@ instantiate_decl (tree d, int defer_ok, if (DECL_OMP_DECLARE_REDUCTION_P (code_pattern) && TREE_CODE (DECL_CONTEXT (code_pattern)) == FUNCTION_DECL) DECL_SAVED_TREE (d) = pop_stmt_list (block); - else + else if (!DECL_DELETED_FN (code_pattern)) { d = finish_function (0); expand_or_defer_fn (d);