aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-low.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-10-04 09:50:38 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-10-04 09:50:38 +0200
commit5c38262d95bedc091083cc881d9e21cd1f215a9a (patch)
treee7a8605743c6aa3f81e39c7c50e404afff3dab36 /gcc/omp-low.c
parent21375f0ded2dbc4240bd9e3bfcb8f48451ce02b4 (diff)
downloadgcc-5c38262d95bedc091083cc881d9e21cd1f215a9a.zip
gcc-5c38262d95bedc091083cc881d9e21cd1f215a9a.tar.gz
gcc-5c38262d95bedc091083cc881d9e21cd1f215a9a.tar.bz2
re PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generated functions)
PR tree-optimization/82374 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES, DECL_FUNCTION_SPECIFIC_OPTIMIZATION, DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from current_function_decl to the new decl. * gcc.dg/gomp/pr82374.c: New test. From-SVN: r253395
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r--gcc/omp-low.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 8ed8f7c..3645661 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -1626,6 +1626,14 @@ create_omp_child_function (omp_context *ctx, bool task_copy)
DECL_CONTEXT (decl) = NULL_TREE;
DECL_INITIAL (decl) = make_node (BLOCK);
BLOCK_SUPERCONTEXT (DECL_INITIAL (decl)) = decl;
+ DECL_ATTRIBUTES (decl) = DECL_ATTRIBUTES (current_function_decl);
+ DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl)
+ = DECL_FUNCTION_SPECIFIC_OPTIMIZATION (current_function_decl);
+ DECL_FUNCTION_SPECIFIC_TARGET (decl)
+ = DECL_FUNCTION_SPECIFIC_TARGET (current_function_decl);
+ DECL_FUNCTION_VERSIONED (decl)
+ = DECL_FUNCTION_VERSIONED (current_function_decl);
+
if (omp_maybe_offloaded_ctx (ctx))
{
cgraph_node::get_create (decl)->offloadable = 1;