ebevhan added inline comments.
================ Comment at: include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:89 SymMgr(context, BasicVals, alloc), MemMgr(context, alloc), - StateMgr(stateMgr), ArrayIndexTy(context.LongLongTy), + StateMgr(stateMgr), ArrayIndexTy(context.getSignedSizeType()), ArrayIndexWidth(context.getTypeSize(ArrayIndexTy)) {} ---------------- a.sidorin wrote: > ebevhan wrote: > > a.sidorin wrote: > > > As you correctly pointed, ssize_t is 32-bit on 32-bit systems. Therefore, > > > it is too short. So, we can leave this line as-is. > > But if it's hardcoded to LongLongTy, you have the same problem on 64-bit > > systems. > Some reasons why LongLongTy is used here are listed in D16063. In brief, you > just cannot create an array of size greater than SIZE_MAX/2 on 64-bit > platforms. I don't think that's limited to 64-bit platforms, it applies to 32-bit ones as well. I know that LLVM has issues with indexing arrays that are larger than half of the address space in general due to limitations of GEP. https://reviews.llvm.org/D46944 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits