mirror of
https://github.com/intel/llvm.git
synced 2026-02-01 00:46:45 +08:00
3941d22a98dbf7e23159a0655a4640fb3e76cc9e
reasoning about OSCompareAndSwap32Barrier/OSCompareAndSwap64Barrier. Essentially the address of reference to a region (pointer-to-pointer) can be casted to (int32_t*), and we need to handle the logic to convert the involved locations back and forth from nonloc::LocAsInteger, nonloc::ConcreteInt, to Loc and loc::ConcreteInt respectively. This adds some potentially suspect logic to BasicStoreManager that allows the analyzer to reason about abuses of the C type system. This should probably be refined, be ported over to RegionStoreManager, and extended with "path-sensitive type checking" to flag bugs in clearly incoherent code. llvm-svn: 70382
Languages
LLVM
41.3%
C++
31.5%
C
13%
Assembly
9.5%
MLIR
1.5%
Other
2.8%