aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr103851.C15
-rw-r--r--gcc/tree-cfg.c20
2 files changed, 23 insertions, 12 deletions
diff --git a/gcc/testsuite/g++.dg/gomp/pr103851.C b/gcc/testsuite/g++.dg/gomp/pr103851.C
new file mode 100644
index 0000000..257e405
--- /dev/null
+++ b/gcc/testsuite/g++.dg/gomp/pr103851.C
@@ -0,0 +1,15 @@
+// { dg-do compile }
+// { dg-options "-fopenmp -ftrivial-auto-var-init=pattern" }
+
+struct _Deque_base {
+ long _M_map_size;
+ int *_M_start;
+ int *_M_finish;
+};
+void morphologicalFilter1D()
+{
+#pragma omp parallel
+ {
+ struct _Deque_base vals[4];
+ }
+}
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index c436e59..bb37793 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -7947,18 +7947,14 @@ move_sese_region_to_fn (struct function *dest_cfun, basic_block entry_bb,
if (eh_map)
delete eh_map;
- if (gimple_in_ssa_p (cfun))
- {
- /* We need to release ssa-names in a defined order, so first find them,
- and then iterate in ascending version order. */
- bitmap release_names = BITMAP_ALLOC (NULL);
- vars_map.traverse<void *, gather_ssa_name_hash_map_from> (release_names);
- bitmap_iterator bi;
- unsigned i;
- EXECUTE_IF_SET_IN_BITMAP (release_names, 0, i, bi)
- release_ssa_name (ssa_name (i));
- BITMAP_FREE (release_names);
- }
+ /* We need to release ssa-names in a defined order, so first find them,
+ and then iterate in ascending version order. */
+ bitmap release_names = BITMAP_ALLOC (NULL);
+ vars_map.traverse<void *, gather_ssa_name_hash_map_from> (release_names);
+ bitmap_iterator bi;
+ EXECUTE_IF_SET_IN_BITMAP (release_names, 0, i, bi)
+ release_ssa_name (ssa_name (i));
+ BITMAP_FREE (release_names);
/* Rewire the entry and exit blocks. The successor to the entry
block turns into the successor of DEST_FN's ENTRY_BLOCK_PTR in