[CGOpenMPRuntime] emitX86DeclareSimdFunction - assert simdlen/cdtsize is not zero...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 22 May 2019 13:02:19 +0000 (13:02 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 22 May 2019 13:02:19 +0000 (13:02 +0000)
Fixes scan-build division by zero warning.

llvm-svn: 361379

clang/lib/CodeGen/CGOpenMPRuntime.cpp

index 0897b4765e22934b10d3b7f71e89938350a1d2f0..651cca4993cee960aed7c9b2de48cdd09c7c788c 100644 (file)
@@ -9774,8 +9774,9 @@ emitX86DeclareSimdFunction(const FunctionDecl *FD, llvm::Function *Fn,
       llvm::raw_svector_ostream Out(Buffer);
       Out << "_ZGV" << Data.ISA << Mask;
       if (!VLENVal) {
-        Out << llvm::APSInt::getUnsigned(Data.VecRegSize /
-                                         evaluateCDTSize(FD, ParamAttrs));
+        unsigned NumElts = evaluateCDTSize(FD, ParamAttrs);
+        assert(NumElts && "Non-zero simdlen/cdtsize expected");
+        Out << llvm::APSInt::getUnsigned(Data.VecRegSize / NumElts);
       } else {
         Out << VLENVal;
       }