File tree 1 file changed +7
-2
lines changed
cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal
1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -815,10 +815,15 @@ private predicate isRelatableMemoryLocation(VariableMemoryLocation vml) {
815
815
vml .getStartBitOffset ( ) != Ints:: unknown ( )
816
816
}
817
817
818
+ pragma [ noinline]
819
+ private int getRank ( VirtualVariable vvar , IntValue offset ) {
820
+ offset = rank [ result ] ( IntValue offset_ | isRelevantOffset ( vvar , offset_ ) )
821
+ }
822
+
818
823
private predicate isCoveredOffset ( Allocation var , int offsetRank , VariableMemoryLocation vml ) {
819
824
exists ( int startRank , int endRank , VirtualVariable vvar |
820
- vml . getStartBitOffset ( ) = rank [ startRank ] ( IntValue offset_ | isRelevantOffset ( vvar , offset_ ) ) and
821
- vml . getEndBitOffset ( ) = rank [ endRank ] ( IntValue offset_ | isRelevantOffset ( vvar , offset_ ) ) and
825
+ startRank = getRank ( vvar , vml . getStartBitOffset ( ) ) and
826
+ endRank = getRank ( vvar , vml . getEndBitOffset ( ) ) and
822
827
var = vml .getAnAllocation ( ) and
823
828
vvar = vml .getVirtualVariable ( ) and
824
829
isRelatableMemoryLocation ( vml ) and
You can’t perform that action at this time.
0 commit comments