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

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 13 04:55:03 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.");
----------------
AaronBallman wrote:

This doesn't seem like a useful diagnostic to someone working on TableGen code. The issue is that the param should never have a zero size to begin with (because that logically doesn't make sense, right?).

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


More information about the cfe-commits mailing list