[clang] Fix build failure in CommonArgs.cpp on MSVC 2022: warning C4715: 'clang::driver::tools::complexRangeKindToStr': not all control paths return a value (PR #159408)

Daniel Paoliello via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 17 10:23:39 PDT 2025


https://github.com/dpaoliello created https://github.com/llvm/llvm-project/pull/159408

Fixes this error:
```
llvm\clang\lib\Driver\ToolChains\CommonArgs.cpp(3523) : warning C4715: 'clang::driver::tools::complexRangeKindToStr': not all control paths return a value
```

This was not seen in the builders as they use MSVC 2019.

Opted to add an `llvm_unreachable` after the switch instead of a `default` so that Clang's warnings about uncovered enum values will still trigger. This matches #112767 and #139309.

Also removed the dead `break` statements after the returns.

>From 3c386d5507ccba7d43d99f6725cb7600bf6889ba Mon Sep 17 00:00:00 2001
From: Daniel Paoliello <danpao at microsoft.com>
Date: Wed, 17 Sep 2025 10:20:09 -0700
Subject: [PATCH] Fix build failure in CommonArgs.cpp on MSVC 2022: warning
 C4715: 'clang::driver::tools::complexRangeKindToStr': not all control paths
 return a value

---
 clang/lib/Driver/ToolChains/CommonArgs.cpp | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index b50549219e4e8..716e04003f065 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -3506,20 +3506,16 @@ std::string tools::complexRangeKindToStr(LangOptions::ComplexRangeKind Range) {
   switch (Range) {
   case LangOptions::ComplexRangeKind::CX_Full:
     return "full";
-    break;
   case LangOptions::ComplexRangeKind::CX_Basic:
     return "basic";
-    break;
   case LangOptions::ComplexRangeKind::CX_Improved:
     return "improved";
-    break;
   case LangOptions::ComplexRangeKind::CX_Promoted:
     return "promoted";
-    break;
   case LangOptions::ComplexRangeKind::CX_None:
     return "none";
-    break;
   }
+  llvm_unreachable("Unknown ComplexRangeKind!");
 }
 
 std::string



More information about the cfe-commits mailing list