[Openmp-commits] [openmp] 6be7c21 - [OpenMP][libomp] Replace accidental VLA with KMP_ALLOCA

Jonathan Peyton via Openmp-commits openmp-commits at lists.llvm.org
Wed Feb 9 06:10:15 PST 2022


Author: Jonathan Peyton
Date: 2022-02-09T08:09:27-06:00
New Revision: 6be7c21b57e4a45b012209974ab9038b679134f5

URL: https://github.com/llvm/llvm-project/commit/6be7c21b57e4a45b012209974ab9038b679134f5
DIFF: https://github.com/llvm/llvm-project/commit/6be7c21b57e4a45b012209974ab9038b679134f5.diff

LOG: [OpenMP][libomp] Replace accidental VLA with KMP_ALLOCA

MSVC does not support variable length arrays. Replace with KMP_ALLOCA
which is already used in the same file for stack-allocated variables.

Added: 
    

Modified: 
    openmp/runtime/src/kmp_affinity.cpp

Removed: 
    


################################################################################
diff  --git a/openmp/runtime/src/kmp_affinity.cpp b/openmp/runtime/src/kmp_affinity.cpp
index 71e8b7fd10eb..d1f1b6790e2d 100644
--- a/openmp/runtime/src/kmp_affinity.cpp
+++ b/openmp/runtime/src/kmp_affinity.cpp
@@ -948,7 +948,7 @@ bool kmp_topology_t::filter_hw_subset() {
   bool using_core_effs = false;
   int hw_subset_depth = __kmp_hw_subset->get_depth();
   kmp_hw_t specified[KMP_HW_LAST];
-  int topology_levels[hw_subset_depth];
+  int *topology_levels = (int *)KMP_ALLOCA(sizeof(int) * hw_subset_depth);
   KMP_ASSERT(hw_subset_depth > 0);
   KMP_FOREACH_HW_TYPE(i) { specified[i] = KMP_HW_UNKNOWN; }
   int core_level = get_level(KMP_HW_CORE);


        


More information about the Openmp-commits mailing list