diff options
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 439ef4c..ade78b2 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -3315,6 +3315,18 @@ copy_forbidden (struct function *fun, tree fndecl) goto fail; } + tree fs_opts; + fs_opts = DECL_FUNCTION_SPECIFIC_OPTIMIZATION (fun->decl); + if (fs_opts) + { + struct cl_optimization *os = TREE_OPTIMIZATION (fs_opts); + if (!os->x_optimize) + { + reason = G_("function %q+F compiled without optimizations"); + goto fail; + } + } + fail: fun->cannot_be_copied_reason = reason; fun->cannot_be_copied_set = true; |