[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