File tree Expand file tree Collapse file tree 2 files changed +5
-2
lines changed
src/semmle/code/cpp/ir/implementation/aliased_ssa/internal
test/library-tests/ir/ssa Expand file tree Collapse file tree 2 files changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -73,14 +73,18 @@ private module Cached {
73
73
or
74
74
instruction .getOpcode ( ) instanceof Opcode:: InitializeNonLocal
75
75
or
76
+ // Chi instructions track virtual variables, and therefore a chi instruction is
77
+ // conflated if it's associated with the aliased virtual variable.
76
78
exists ( OldInstruction oldInstruction | instruction = Chi ( oldInstruction ) |
77
79
Alias:: getResultMemoryLocation ( oldInstruction ) .getVirtualVariable ( ) instanceof
78
80
Alias:: AliasedVirtualVariable
79
81
)
80
82
or
83
+ // Phi instructions track locations, and therefore a phi instruction is
84
+ // conflated if it's associated with a conflated location.
81
85
exists ( Alias:: MemoryLocation location |
82
86
instruction = Phi ( _, location ) and
83
- location .getVirtualVariable ( ) instanceof Alias :: AliasedVirtualVariable
87
+ not exists ( location .getAllocation ( ) )
84
88
)
85
89
}
86
90
Original file line number Diff line number Diff line change @@ -18,7 +18,6 @@ useNotDominatedByDefinition
18
18
switchInstructionWithoutDefaultEdge
19
19
notMarkedAsConflated
20
20
wronglyMarkedAsConflated
21
- | ssa.cpp:281:7:281:7 | Phi: definition of x |
22
21
missingCanonicalLanguageType
23
22
multipleCanonicalLanguageTypes
24
23
missingIRType
You can’t perform that action at this time.
0 commit comments