[clang] [CFG] Add a BuildOption to consider default branch of switch on covered enumerations. (PR #161345)

Balazs Benics via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 2 04:12:06 PDT 2025


================
@@ -93,6 +93,159 @@ TEST(CFG, DependantBaseAddImplicitDtors) {
                 .getStatus());
 }
 
+TEST(CFG, SwitchCoveredEnumNoDefault) {
+  const char *Code = R"(
+    enum class E {E1, E2};
+    int f(E e) {
+      switch(e) {
+        case E::E1:
+          return 1;
+        case E::E2:
+          return 2;
+      }
+      return 0;
+    }
+  )";
+  CFG::BuildOptions Options;
+  Options.AssumeReachableDefaultInSwitchStatements = true;
+  BuildResult B = BuildCFG(Code, Options);
+  EXPECT_EQ(BuildResult::BuiltCFG, B.getStatus());
----------------
steakhal wrote:

```suggestion
  ASSERT_EQ(BuildResult::BuiltCFG, B.getStatus());
```

https://github.com/llvm/llvm-project/pull/161345


More information about the cfe-commits mailing list