On Thu, Apr 02, 2015 at 09:05:53PM +0200, Jakub Jelinek wrote:
> On Thu, Apr 02, 2015 at 09:23:03PM +0300, Ilya Verbin wrote:
> > Hmm, libgomp.c++/target-3.C still fails.
> > Here is what I see in need_assembler_name_p:
> 
> Guess we should make the .omp_data_s.* types TYPE_ARTIFICIAL too.
> Will take care of that tomorrow.

Tested on x86_64-linux, committed to trunk.

2015-04-03  Jakub Jelinek  <ja...@redhat.com>

        * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
        TYPE_ARTIFICIAL on the .omp_data* types.

--- gcc/omp-low.c.jj    2015-03-23 08:47:51.000000000 +0100
+++ gcc/omp-low.c       2015-04-02 22:06:30.547850197 +0200
@@ -2351,6 +2351,7 @@ scan_omp_parallel (gimple_stmt_iterator
   DECL_ARTIFICIAL (name) = 1;
   DECL_NAMELESS (name) = 1;
   TYPE_NAME (ctx->record_type) = name;
+  TYPE_ARTIFICIAL (ctx->record_type) = 1;
   create_omp_child_function (ctx, false);
   gimple_omp_parallel_set_child_fn (stmt, ctx->cb.dst_fn);
 
@@ -2391,6 +2392,7 @@ scan_omp_task (gimple_stmt_iterator *gsi
   DECL_ARTIFICIAL (name) = 1;
   DECL_NAMELESS (name) = 1;
   TYPE_NAME (ctx->record_type) = name;
+  TYPE_ARTIFICIAL (ctx->record_type) = 1;
   create_omp_child_function (ctx, false);
   gimple_omp_task_set_child_fn (stmt, ctx->cb.dst_fn);
 
@@ -2404,6 +2406,7 @@ scan_omp_task (gimple_stmt_iterator *gsi
       DECL_ARTIFICIAL (name) = 1;
       DECL_NAMELESS (name) = 1;
       TYPE_NAME (ctx->srecord_type) = name;
+      TYPE_ARTIFICIAL (ctx->srecord_type) = 1;
       create_omp_child_function (ctx, true);
     }
 
@@ -2671,6 +2674,7 @@ scan_omp_target (gomp_target *stmt, omp_
   DECL_ARTIFICIAL (name) = 1;
   DECL_NAMELESS (name) = 1;
   TYPE_NAME (ctx->record_type) = name;
+  TYPE_ARTIFICIAL (ctx->record_type) = 1;
   if (offloaded)
     {
       if (is_gimple_omp_oacc (stmt))


        Jakub

Reply via email to