]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Clarify memory management for 'prop_set' in 'gcc/omp-oacc-neuter-broadcast.cc'
authorThomas Schwinge <thomas@codesourcery.com>
Wed, 11 Aug 2021 20:31:55 +0000 (22:31 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Mon, 16 Aug 2021 10:09:14 +0000 (12:09 +0200)
Clean-up for recent commit e2a58ed6dc5293602d0d168475109caa81ad0f0d
"openacc: Middle-end worker-partitioning support".

gcc/
* omp-oacc-neuter-broadcast.cc
(execute_omp_oacc_neuter_broadcast): Clarify memory management for
'prop_set'.

gcc/omp-oacc-neuter-broadcast.cc

index 9bde0aca10fef292822f01564945fa257eb5def7..d30867085c3665208ac7759dc6e54e00808cf8e5 100644 (file)
@@ -1398,11 +1398,8 @@ execute_omp_oacc_neuter_broadcast ()
   FOR_ALL_BB_FN (bb, cfun)
     bb->aux = NULL;
 
-  vec<propagation_set *> prop_set;
-  prop_set.create (last_basic_block_for_fn (cfun));
-
-  for (int i = 0; i < last_basic_block_for_fn (cfun); i++)
-    prop_set.quick_push (0);
+  vec<propagation_set *> prop_set (vNULL);
+  prop_set.safe_grow_cleared (last_basic_block_for_fn (cfun), true);
 
   find_ssa_names_to_propagate (par, mask, worker_single, vector_single,
                               &prop_set);
@@ -1461,6 +1458,9 @@ execute_omp_oacc_neuter_broadcast ()
     delete it.second;
   record_field_map.empty ();
 
+  /* These are supposed to have been 'delete'd by 'neuter_worker_single'.  */
+  for (auto it : prop_set)
+    gcc_checking_assert (!it);
   prop_set.release ();
 
   /* This doesn't seem to make a difference.  */