[clang] [clang] Fix division by zero in ACLEIntrinsic constructor (PR #115883)

Mariya Podchishchaeva via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 13 04:17:36 PST 2024


================
@@ -1415,7 +1415,10 @@ ACLEIntrinsic::ACLEIntrinsic(EmitterBase &ME, const Record *R,
         } else if (Bounds->getName() == "IB_LaneIndex") {
           IA.boundsType = ImmediateArg::BoundsType::ExplicitRange;
           IA.i1 = 0;
-          IA.i2 = 128 / Param->sizeInBits() - 1;
+          unsigned sizeInBits = Param->sizeInBits();
+          if (sizeInBits == 0)
+            PrintFatalError("Division by zero: Param->sizeInBits() is zero.");
+          IA.i2 = 128 / sizeInBits() - 1;
----------------
Fznamznon wrote:

This code doesn't build. To fix
```suggestion
          IA.i2 = 128 / sizeInBits - 1;
```
Also, I'm not sure if the check is not obsolete at all. Adding a couple of more reviewers.

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


More information about the cfe-commits mailing list