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 + 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 + + PR c/26171 + * testsuite/libgomp.c/pr26171.c: New test. + 2006-04-25 Richard Henderson 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; +}