[llvm-branch-commits] [openmp] 78f8449 - [OpenMP][libomp] Replace accidental VLA with KMP_ALLOCA

Tom Stellard via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Feb 15 03:03:14 PST 2022


Author: Jonathan Peyton
Date: 2022-02-15T03:02:27-08:00
New Revision: 78f8449e01f7a397c6ba1cb7e9d0e1e863bbeaa5

URL: https://github.com/llvm/llvm-project/commit/78f8449e01f7a397c6ba1cb7e9d0e1e863bbeaa5
DIFF: https://github.com/llvm/llvm-project/commit/78f8449e01f7a397c6ba1cb7e9d0e1e863bbeaa5.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.

(cherry picked from commit 6be7c21b57e4a45b012209974ab9038b679134f5)

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 71e8b7fd10eb6..d1f1b6790e2d5 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 llvm-branch-commits mailing list