[clang] 464a069 - [SVE] Fix unsigned is always >= 0

Christopher Tetreault via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 15 15:24:07 PDT 2020


Author: Christopher Tetreault
Date: 2020-04-15T15:23:49-07:00
New Revision: 464a0697e36ae84c4292402c7774c6ec6e93a438

URL: https://github.com/llvm/llvm-project/commit/464a0697e36ae84c4292402c7774c6ec6e93a438
DIFF: https://github.com/llvm/llvm-project/commit/464a0697e36ae84c4292402c7774c6ec6e93a438.diff

LOG: [SVE] Fix unsigned is always >= 0

Reviewers: efriedma, sdesmalen

Reviewed By: sdesmalen

Subscribers: tschuett, rkruppe, psnobl, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D78131

Added: 
    

Modified: 
    clang/utils/TableGen/SveEmitter.cpp

Removed: 
    


################################################################################
diff  --git a/clang/utils/TableGen/SveEmitter.cpp b/clang/utils/TableGen/SveEmitter.cpp
index 5f9f5d5ede8c..79258a8fbbf2 100644
--- a/clang/utils/TableGen/SveEmitter.cpp
+++ b/clang/utils/TableGen/SveEmitter.cpp
@@ -801,9 +801,10 @@ void SVEEmitter::createIntrinsic(
     // Collate a list of range/option checks for the immediates.
     SmallVector<ImmCheck, 2> ImmChecks;
     for (auto *R : ImmCheckList) {
-      unsigned Arg = R->getValueAsInt("Arg");
-      unsigned EltSizeArg = R->getValueAsInt("EltSizeArg");
-      unsigned Kind = R->getValueAsDef("Kind")->getValueAsInt("Value");
+      int64_t Arg = R->getValueAsInt("Arg");
+      int64_t EltSizeArg = R->getValueAsInt("EltSizeArg");
+      int64_t Kind = R->getValueAsDef("Kind")->getValueAsInt("Value");
+      assert(Arg >= 0 && Kind >= 0 && "Arg and Kind must be nonnegative");
 
       unsigned ElementSizeInBits = 0;
       if (EltSizeArg >= 0)


        


More information about the cfe-commits mailing list