aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/omp-offload.c11
2 files changed, 5 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9ed8713..83d4e8f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2017-02-14 Jakub Jelinek <jakub@redhat.com>
+ PR middle-end/79505
+ * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
+ (new_oacc_loop_raw): Don't clear already cleared fields.
+
PR target/79481
* config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
_mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
diff --git a/gcc/omp-offload.c b/gcc/omp-offload.c
index 11696b8..aed9e140 100644
--- a/gcc/omp-offload.c
+++ b/gcc/omp-offload.c
@@ -681,7 +681,6 @@ new_oacc_loop_raw (oacc_loop *parent, location_t loc)
oacc_loop *loop = XCNEW (oacc_loop);
loop->parent = parent;
- loop->child = loop->sibling = NULL;
if (parent)
{
@@ -690,15 +689,6 @@ new_oacc_loop_raw (oacc_loop *parent, location_t loc)
}
loop->loc = loc;
- loop->marker = NULL;
- memset (loop->heads, 0, sizeof (loop->heads));
- memset (loop->tails, 0, sizeof (loop->tails));
- loop->routine = NULL_TREE;
-
- loop->mask = loop->e_mask = loop->flags = loop->inner = 0;
- loop->chunk_size = 0;
- loop->head_end = NULL;
-
return loop;
}
@@ -773,6 +763,7 @@ free_oacc_loop (oacc_loop *loop)
if (loop->child)
free_oacc_loop (loop->child);
+ loop->ifns.release ();
free (loop);
}