[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)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 17 10:24:13 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-driver
Author: Daniel Paoliello (dpaoliello)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/159408.diff
1 Files Affected:
- (modified) clang/lib/Driver/ToolChains/CommonArgs.cpp (+1-5)
``````````diff
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
``````````
</details>
https://github.com/llvm/llvm-project/pull/159408
More information about the cfe-commits
mailing list