]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
openmp: ensure variables in offload table are streamed out (PRs 94848 + 95551)
authorTobias Burnus <tobias@codesourcery.com>
Tue, 9 Jun 2020 14:31:22 +0000 (16:31 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Mon, 15 Jun 2020 09:06:18 +0000 (11:06 +0200)
gcc/ChangeLog:

* omp-offload.c (add_decls_addresses_to_decl_constructor,
omp_finish_file): With in_lto_p, stream out all offload-table
items even if the symtab_node does not exist.

(cherry picked from commit bf4ab2689bb586971d5b2ab6b13d078cd7ac45af)

gcc/omp-offload.c

index c74c421a5cbd5fab0f1412083eaae64e179ce413..6daf6226921a430b73b41bccd494c2ef4ffc523b 100644 (file)
@@ -125,7 +125,7 @@ add_decls_addresses_to_decl_constructor (vec<tree, va_gc> *v_decls,
          && lookup_attribute ("omp declare target link", DECL_ATTRIBUTES (it));
 
       /* See also omp_finish_file and output_offload_tables in lto-cgraph.c.  */
-      if (!symtab_node::get (it))
+      if (!in_lto_p && !symtab_node::get (it))
        continue;
 
       tree size = NULL_TREE;
@@ -221,14 +221,14 @@ omp_finish_file (void)
          tree it = (*offload_funcs)[i];
          /* See also add_decls_addresses_to_decl_constructor
             and output_offload_tables in lto-cgraph.c.  */
-         if (!symtab_node::get (it))
+         if (!in_lto_p && !symtab_node::get (it))
            continue;
          targetm.record_offload_symbol (it);
        }
       for (unsigned i = 0; i < num_vars; i++)
        {
          tree it = (*offload_vars)[i];
-         if (!symtab_node::get (it))
+         if (!in_lto_p && !symtab_node::get (it))
            continue;
 #ifdef ACCEL_COMPILER
          if (DECL_HAS_VALUE_EXPR_P (it)