Skip to content

Commit 9094f9a

Browse files
authored
Merge pull request github#13567 from github/alexdenisov/extend-observer
Swift: extend frontend observer
2 parents 113408e + ea5eda0 commit 9094f9a

File tree

25 files changed

+30
-136
lines changed

25 files changed

+30
-136
lines changed

swift/extractor/main.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ class Observer : public swift::FrontendObserver {
8585

8686
void parsedArgs(swift::CompilerInvocation& invocation) override {
8787
auto& options = invocation.getFrontendOptions();
88+
options.KeepASTContext = true;
8889
lockOutputSwiftModuleTraps(state, options);
8990
processFrontendOptions(state, options);
9091
}
@@ -93,7 +94,7 @@ class Observer : public swift::FrontendObserver {
9394
instance.addDiagnosticConsumer(&diagConsumer);
9495
}
9596

96-
void performedSemanticAnalysis(swift::CompilerInstance& compiler) override {
97+
void performedCompilation(swift::CompilerInstance& compiler) override {
9798
codeql::extractSwiftFiles(state, compiler);
9899
codeql::extractSwiftInvocation(state, compiler, invocationTrap);
99100
codeql::extractExtractLazyDeclarations(state, compiler);

swift/ql/test/extractor-tests/declarations/CONSISTENCY/CfgConsistency.expected

Lines changed: 0 additions & 6 deletions
This file was deleted.

swift/ql/test/extractor-tests/expressions/CONSISTENCY/CfgConsistency.expected

Lines changed: 0 additions & 2 deletions
This file was deleted.

swift/ql/test/extractor-tests/generated/decl/EnumDecl/CONSISTENCY/CfgConsistency.expected

Lines changed: 0 additions & 6 deletions
This file was deleted.

swift/ql/test/extractor-tests/statements/CONSISTENCY/CfgConsistency.expected

Lines changed: 0 additions & 2 deletions
This file was deleted.

swift/ql/test/library-tests/ast/CONSISTENCY/CfgConsistency.expected

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,4 @@ multipleSuccessors
88
deadEnd
99
| cfg.swift:33:49:33:60 | call to isZero(x:) |
1010
| cfg.swift:144:18:144:34 | ... .&&(_:_:) ... |
11-
| file://:0:0:0:0 | ... = ... |
12-
| file://:0:0:0:0 | ... = ... |
13-
| file://:0:0:0:0 | ... = ... |
14-
| file://:0:0:0:0 | ... = ... |
15-
| file://:0:0:0:0 | ... = ... |
16-
| file://:0:0:0:0 | ... = ... |
17-
| file://:0:0:0:0 | ... = ... |
18-
| file://:0:0:0:0 | ... = ... |
19-
| file://:0:0:0:0 | ... = ... |
2011
| patterns.swift:16:10:16:14 | =~ ... |
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
| file://:0:0:0:0 | ... .combine(_:) | UnresolvedDotExpr |
2-
| file://:0:0:0:0 | ... .combine(_:) | UnresolvedDotExpr |
3-
| file://:0:0:0:0 | ... .combine(_:) | UnresolvedDotExpr |
4-
| file://:0:0:0:0 | ... .combine(_:) | UnresolvedDotExpr |
51
| patterns.swift:16:12:16:12 | OverloadedDeclRefExpr | OverloadedDeclRefExpr |

swift/ql/test/library-tests/ast/PrintAst.expected

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2795,11 +2795,14 @@ cfg.swift:
27952795
#-----| getSource(): [IntegerLiteralExpr] 1
27962796
#-----| getLabel(0): [CaseLabelItem] .B
27972797
#-----| getPattern(): [EnumElementPattern] .B
2798-
#-----| getElement(2): [CallExpr] call to ...
2799-
#-----| getFunction(): [UnresolvedDotExpr] ... .combine(_:)
2800-
#-----| getBase(): [DeclRefExpr] hasher
2798+
#-----| getElement(2): [CallExpr] call to combine(_:)
2799+
#-----| getFunction(): [MethodLookupExpr] .combine(_:)
2800+
#-----| getBase(): [InOutExpr] &...
2801+
#-----| getSubExpr(): [DeclRefExpr] hasher
2802+
#-----| getMethodRef(): [DeclRefExpr] combine(_:)
28012803
#-----| getArgument(0): [Argument] : discriminator
28022804
#-----| getExpr(): [DeclRefExpr] discriminator
2805+
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
28032806
#-----| getMember(7): [ConcreteVarDecl] hashValue
28042807
#-----| Type = Int
28052808
#-----| getAccessor(0): [Accessor] get
@@ -3482,11 +3485,14 @@ declarations.swift:
34823485
#-----| getSource(): [IntegerLiteralExpr] 4
34833486
#-----| getLabel(0): [CaseLabelItem] .value5
34843487
#-----| getPattern(): [EnumElementPattern] .value5
3485-
#-----| getElement(2): [CallExpr] call to ...
3486-
#-----| getFunction(): [UnresolvedDotExpr] ... .combine(_:)
3487-
#-----| getBase(): [DeclRefExpr] hasher
3488+
#-----| getElement(2): [CallExpr] call to combine(_:)
3489+
#-----| getFunction(): [MethodLookupExpr] .combine(_:)
3490+
#-----| getBase(): [InOutExpr] &...
3491+
#-----| getSubExpr(): [DeclRefExpr] hasher
3492+
#-----| getMethodRef(): [DeclRefExpr] combine(_:)
34883493
#-----| getArgument(0): [Argument] : discriminator
34893494
#-----| getExpr(): [DeclRefExpr] discriminator
3495+
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
34903496
#-----| getMember(10): [ConcreteVarDecl] hashValue
34913497
#-----| Type = Int
34923498
#-----| getAccessor(0): [Accessor] get
@@ -4394,11 +4400,14 @@ expressions.swift:
43944400
#-----| getSource(): [IntegerLiteralExpr] 0
43954401
#-----| getLabel(0): [CaseLabelItem] .failed
43964402
#-----| getPattern(): [EnumElementPattern] .failed
4397-
#-----| getElement(2): [CallExpr] call to ...
4398-
#-----| getFunction(): [UnresolvedDotExpr] ... .combine(_:)
4399-
#-----| getBase(): [DeclRefExpr] hasher
4403+
#-----| getElement(2): [CallExpr] call to combine(_:)
4404+
#-----| getFunction(): [MethodLookupExpr] .combine(_:)
4405+
#-----| getBase(): [InOutExpr] &...
4406+
#-----| getSubExpr(): [DeclRefExpr] hasher
4407+
#-----| getMethodRef(): [DeclRefExpr] combine(_:)
44004408
#-----| getArgument(0): [Argument] : discriminator
44014409
#-----| getExpr(): [DeclRefExpr] discriminator
4410+
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
44024411
#-----| getMember(5): [ConcreteVarDecl] hashValue
44034412
#-----| Type = Int
44044413
#-----| getAccessor(0): [Accessor] get
@@ -6656,11 +6665,14 @@ statements.swift:
66566665
#-----| getSource(): [IntegerLiteralExpr] 0
66576666
#-----| getLabel(0): [CaseLabelItem] .failed
66586667
#-----| getPattern(): [EnumElementPattern] .failed
6659-
#-----| getElement(2): [CallExpr] call to ...
6660-
#-----| getFunction(): [UnresolvedDotExpr] ... .combine(_:)
6661-
#-----| getBase(): [DeclRefExpr] hasher
6668+
#-----| getElement(2): [CallExpr] call to combine(_:)
6669+
#-----| getFunction(): [MethodLookupExpr] .combine(_:)
6670+
#-----| getBase(): [InOutExpr] &...
6671+
#-----| getSubExpr(): [DeclRefExpr] hasher
6672+
#-----| getMethodRef(): [DeclRefExpr] combine(_:)
66626673
#-----| getArgument(0): [Argument] : discriminator
66636674
#-----| getExpr(): [DeclRefExpr] discriminator
6675+
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
66646676
#-----| getMember(5): [ConcreteVarDecl] hashValue
66656677
#-----| Type = Int
66666678
#-----| getAccessor(0): [Accessor] get

swift/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,3 @@ multipleSuccessors
88
deadEnd
99
| cfg.swift:33:49:33:60 | call to isZero(x:) |
1010
| cfg.swift:144:18:144:34 | ... .&&(_:_:) ... |
11-
| file://:0:0:0:0 | ... = ... |
12-
| file://:0:0:0:0 | ... = ... |

swift/ql/test/library-tests/dataflow/taint/libraries/CONSISTENCY/CfgConsistency.expected

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)