Skip to content

Commit e011480

Browse files
authored
Merge pull request github#13509 from hvitved/cfg-pack
Convert shared CFG construction library to a parameterized module
2 parents 9ed8dec + 2ac6467 commit e011480

File tree

27 files changed

+1895
-1677
lines changed

27 files changed

+1895
-1677
lines changed

config/identical-files.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,6 @@
486486
],
487487
"CFG": [
488488
"csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll",
489-
"ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll",
490489
"swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll"
491490
],
492491
"TypeTracker": [
@@ -573,4 +572,4 @@
573572
"python/ql/lib/semmle/python/security/internal/EncryptionKeySizes.qll",
574573
"java/ql/lib/semmle/code/java/security/internal/EncryptionKeySizes.qll"
575574
]
576-
}
575+
}

ruby/ql/consistency-queries/CfgConsistency.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import codeql.ruby.controlflow.internal.ControlFlowGraphImplShared::Consistency
1+
import codeql.ruby.controlflow.internal.ControlFlowGraphImpl::Consistency
22
import codeql.ruby.AST
33
import codeql.ruby.CFG
44
import codeql.ruby.controlflow.internal.Completion
5-
import codeql.ruby.controlflow.internal.ControlFlowGraphImpl
5+
import codeql.ruby.controlflow.internal.ControlFlowGraphImpl as CfgImpl
66

77
/**
88
* All `Expr` nodes are `PostOrderTree`s
@@ -14,7 +14,7 @@ query predicate nonPostOrderExpr(Expr e, string cls) {
1414
not e instanceof Namespace and
1515
not e instanceof Toplevel and
1616
exists(AstNode last, Completion c |
17-
last(e, last, c) and
17+
CfgImpl::last(e, last, c) and
1818
last != e and
1919
c instanceof NormalCompletion
2020
)

ruby/ql/lib/codeql/ruby/ast/Statement.qll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ private import codeql.ruby.CFG
33
private import internal.AST
44
private import internal.TreeSitter
55
private import internal.Variable
6-
private import codeql.ruby.controlflow.internal.ControlFlowGraphImpl
6+
private import codeql.ruby.controlflow.internal.ControlFlowGraphImpl as CfgImpl
77

88
/**
99
* A statement.
@@ -12,13 +12,13 @@ private import codeql.ruby.controlflow.internal.ControlFlowGraphImpl
1212
*/
1313
class Stmt extends AstNode, TStmt {
1414
/** Gets a control-flow node for this statement, if any. */
15-
CfgNodes::AstCfgNode getAControlFlowNode() { result.getNode() = this }
15+
CfgNodes::AstCfgNode getAControlFlowNode() { result.getAstNode() = this }
1616

1717
/** Gets a control-flow entry node for this statement, if any */
18-
AstNode getAControlFlowEntryNode() { result = getAControlFlowEntryNode(this) }
18+
AstNode getAControlFlowEntryNode() { result = CfgImpl::getAControlFlowEntryNode(this) }
1919

2020
/** Gets the control-flow scope of this statement, if any. */
21-
CfgScope getCfgScope() { result = getCfgScope(this) }
21+
CfgScope getCfgScope() { result = CfgImpl::getCfgScope(this) }
2222

2323
/** Gets the enclosing callable, if any. */
2424
Callable getEnclosingCallable() { result = this.getCfgScope() }

ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ private module Propagation {
214214
any(StringComponentCfgNode c |
215215
isString(c, result)
216216
or
217-
result = c.getNode().(StringComponentImpl).getValue()
217+
result = c.getAstNode().(StringComponentImpl).getValue()
218218
)
219219
}
220220

ruby/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ private import codeql.ruby.AST
44
private import codeql.ruby.ast.internal.AST
55
private import codeql.ruby.ast.internal.TreeSitter
66
private import codeql.ruby.controlflow.ControlFlowGraph
7-
private import internal.ControlFlowGraphImpl
87
private import CfgNodes
98
private import SuccessorTypes
109

@@ -390,7 +389,7 @@ private module JoinBlockPredecessors {
390389
private predicate idOf(Ruby::AstNode x, int y) = equivalenceRelation(id/2)(x, y)
391390

392391
int getId(JoinBlockPredecessor jbp) {
393-
idOf(toGeneratedInclSynth(jbp.getFirstNode().(AstCfgNode).getNode()), result)
392+
idOf(toGeneratedInclSynth(jbp.getFirstNode().(AstCfgNode).getAstNode()), result)
394393
or
395394
idOf(toGeneratedInclSynth(jbp.(EntryBasicBlock).getScope()), result)
396395
}

0 commit comments

Comments
 (0)