[llvm] CMake: Fix LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING in reentrancy situa… (PR #144331)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 16 03:57:44 PDT 2025


https://github.com/penguin-wwy created https://github.com/llvm/llvm-project/pull/144331

In the case of re-entrance, an error will be reported for valid values.
```
   CMake Error at cmake/modules/HandleLLVMOptions.cmake:210 (message):
    Unknown value for LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING: "0"!
```
For example, in downstream projects:
https://github.com/llvm/torch-mlir/pull/4230#issuecomment-2975972970

>From ae5ec9d03a2a253cfaa261437f5fd751b62a88ce Mon Sep 17 00:00:00 2001
From: penguin_wwy <940375606 at qq.com>
Date: Mon, 16 Jun 2025 18:50:25 +0800
Subject: [PATCH] CMake: Fix LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING in
 reentrancy situation

---
 llvm/cmake/modules/HandleLLVMOptions.cmake | 26 +++++++++++++---------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index 743eb6f5529f2..267c7cf6049be 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -198,17 +198,21 @@ endif()
 
 string(TOUPPER "${LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING}" uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING)
 
-if( uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING STREQUAL "COVERAGE" )
-  set( LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING 1 )
-elseif( uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING STREQUAL "COVERAGE_AND_ORIGIN" )
-  set( LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING 1 )
-  set( LLVM_ENABLE_DEBUGLOC_ORIGIN_TRACKING 1 )
-elseif( uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING STREQUAL "DISABLED" OR NOT DEFINED LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING )
-  # The DISABLED setting is default.
-  set( LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING 0 )
-else()
-  message(FATAL_ERROR "Unknown value for LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING: \"${LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING}\"!")
-endif()
+if( NOT ${LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING} EQUAL 0
+      AND NOT ${LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING} EQUAL 1 )
+  string(TOUPPER "${LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING}" uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING)
+  if( uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING STREQUAL "COVERAGE" )
+    set( LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING 1 )
+  elseif( uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING STREQUAL "COVERAGE_AND_ORIGIN" )
+    set( LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING 1 )
+    set( LLVM_ENABLE_DEBUGLOC_ORIGIN_TRACKING 1 )
+  elseif( uppercase_LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING STREQUAL "DISABLED" OR NOT DEFINED LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING )
+    # The DISABLED setting is default.
+    set( LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING 0 )
+  else()
+    message(FATAL_ERROR "Unknown value for LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING: \"${LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING}\"!")
+  endif()
+endif ()
 # LLVM_ENABLE_DEBUGLOC_COVERAGE_TRACKING (non-cached) is expected to be
 # 1 or 0 here, assuming referenced in #cmakedefine01.
 



More information about the llvm-commits mailing list