[llvm-branch-commits] [clang] e678656 - Add bounds checking	assertions to APValue, NFC
    Reid Kleckner via llvm-branch-commits 
    llvm-branch-commits at lists.llvm.org
       
    Tue Jan 19 11:20:10 PST 2021
    
    
  
Author: Reid Kleckner
Date: 2021-01-19T11:15:02-08:00
New Revision: e678656625a3e2b6a5f2849f4a6f7612ceeaed07
URL: https://github.com/llvm/llvm-project/commit/e678656625a3e2b6a5f2849f4a6f7612ceeaed07
DIFF: https://github.com/llvm/llvm-project/commit/e678656625a3e2b6a5f2849f4a6f7612ceeaed07.diff
LOG: Add bounds checking assertions to APValue, NFC
These checks help find llvm.org/pr48582 without ASan
Added: 
    
Modified: 
    clang/include/clang/AST/APValue.h
Removed: 
    
################################################################################
diff  --git a/clang/include/clang/AST/APValue.h b/clang/include/clang/AST/APValue.h
index f9b189926c76..5f4ac02f53c9 100644
--- a/clang/include/clang/AST/APValue.h
+++ b/clang/include/clang/AST/APValue.h
@@ -537,10 +537,12 @@ class APValue {
   }
   APValue &getStructBase(unsigned i) {
     assert(isStruct() && "Invalid accessor");
+    assert(i < getStructNumBases() && "base class index OOB");
     return ((StructData *)(char *)&Data)->Elts[i];
   }
   APValue &getStructField(unsigned i) {
     assert(isStruct() && "Invalid accessor");
+    assert(i < getStructNumFields() && "field index OOB");
     return ((StructData *)(char *)&Data)->Elts[getStructNumBases() + i];
   }
   const APValue &getStructBase(unsigned i) const {
        
    
    
More information about the llvm-branch-commits
mailing list