aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-04-26 10:26:06 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2006-04-26 10:26:06 +0200
commit91b6c26dd2ca4426cb9dfa6faa83a984cd76bfe9 (patch)
tree26149ec9ebe19726864e8d6f097d26e4391d7e77
parent07ed51c9cee029feb2ad2f8431cbdc60ed395fe3 (diff)
re PR c/26171 (#pragma omp threadprivate requires -funit-at-a-time)
PR c/26171 * cgraph.c (cgraph_varpool_finalize_decl): Don't call cgraph_varpool_assemble_pending_decls if -fopenmp, unless cgraph_global_info_ready. * testsuite/libgomp.c/pr26171.c: New test. From-SVN: r113271
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cgraph.c4
-rw-r--r--libgomp/ChangeLog5
-rw-r--r--libgomp/testsuite/libgomp.c/pr26171.c14
4 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ebec042da70..591ca4b7533 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2006-04-26 Jakub Jelinek <jakub@redhat.com>
+ PR c/26171
+ * cgraph.c (cgraph_varpool_finalize_decl): Don't call
+ cgraph_varpool_assemble_pending_decls if -fopenmp, unless
+ cgraph_global_info_ready.
+
PR middle-end/26913
* tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 6a8ac08aeff..301de315426 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -886,7 +886,7 @@ cgraph_varpool_finalize_decl (tree decl)
if this function has already run. */
if (node->finalized)
{
- if (cgraph_global_info_ready || !flag_unit_at_a_time)
+ if (cgraph_global_info_ready || (!flag_unit_at_a_time && !flag_openmp))
cgraph_varpool_assemble_pending_decls ();
return;
}
@@ -901,7 +901,7 @@ cgraph_varpool_finalize_decl (tree decl)
there. */
else if (TREE_PUBLIC (decl) && !DECL_COMDAT (decl) && !DECL_EXTERNAL (decl))
cgraph_varpool_mark_needed_node (node);
- if (cgraph_global_info_ready || !flag_unit_at_a_time)
+ if (cgraph_global_info_ready || (!flag_unit_at_a_time && !flag_openmp))
cgraph_varpool_assemble_pending_decls ();
}
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 41b3a09536f..657b7ea0425 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/26171
+ * testsuite/libgomp.c/pr26171.c: New test.
+
2006-04-25 Richard Henderson <rth@redhat.com>
PR libgomp/25865
diff --git a/libgomp/testsuite/libgomp.c/pr26171.c b/libgomp/testsuite/libgomp.c/pr26171.c
new file mode 100644
index 00000000000..eacc9a71d3e
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/pr26171.c
@@ -0,0 +1,14 @@
+/* PR c/26171 */
+/* { dg-do run } */
+/* { dg-options "-fopenmp" } */
+/* { dg-require-effective-target tls_runtime } */
+
+int thrv = 0;
+#pragma omp threadprivate (thrv)
+
+int
+main ()
+{
+ thrv = 1;
+ return 0;
+}