[llvm-branch-commits] [clang] [CIR] Replace nsw/nuw unit attrs with OverflowFlags BitEnum (PR #195618)

Andy Kaylor via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue May 5 13:05:43 PDT 2026


================
@@ -61,6 +61,15 @@ constexpr bool testFlag(OverflowBehavior ob, OverflowBehavior flag) {
   return (ob & flag) != OverflowBehavior::None;
 }
 
+inline OverflowFlags toOverflowFlags(OverflowBehavior ob) {
+  auto flags = OverflowFlags::none;
+  if (testFlag(ob, OverflowBehavior::NoSignedWrap))
+    flags = flags | OverflowFlags::nsw;
+  if (testFlag(ob, OverflowBehavior::NoUnsignedWrap))
+    flags = flags | OverflowFlags::nuw;
+  return flags;
----------------
andykaylor wrote:

Should you assert that the `Saturated` flag isn't set here? Otherwise, a comment explaining why this function ignores that flag would be useful.

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


More information about the llvm-branch-commits mailing list