Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
dabb678
Cargo: upgrade dependencies
redsun82 Aug 14, 2026
93fd01d
Bazel: regenerate vendored cargo dependencies
redsun82 Aug 14, 2026
1ffe300
Rust: run codegen
redsun82 Aug 14, 2026
bd980d2
Rust: update toolchain to nightly/2026-07-15 and rules_rust 0.73.0
redsun82 Aug 14, 2026
48718e5
Rust: adapt extractor to ra_ap 0.0.347 API
redsun82 Aug 14, 2026
dcc9129
Rust: adapt QL library to ra_ap 0.0.347 schema
redsun82 Aug 14, 2026
f334221
Rust: bump test toolchain to 1.97 and update generated test expectations
redsun82 Aug 14, 2026
85886ee
Rust: add DB upgrade/downgrade scripts and change note for ra_ap 0.0.347
redsun82 Aug 14, 2026
9a40ad1
Update Rust generated translator signature
redsun82 Aug 14, 2026
fb47497
Fix tree-sitter clippy warnings
redsun82 Aug 14, 2026
ee020e5
Rust: scrub deleted-node references in downgrade script
redsun82 Aug 14, 2026
d799a3c
Rust: fix Translator lifetime in codegen template
redsun82 Aug 14, 2026
9fddc44
Bazel: re-vendor cargo dependencies for rules_rust 0.73
redsun82 Aug 14, 2026
5db5bd7
Rust: resolve `rust.ungram` under aggregated vendor repo layout
redsun82 Aug 14, 2026
7f665fc
Rust: document new AST nodes and regenerate
redsun82 Aug 14, 2026
4f6ea2a
Rust: document full re-vendoring after toolchain or rules_rust bump
redsun82 Aug 14, 2026
ae78def
Rust: clarify QLDoc for experimental `DerefPat`, `NotNull`, and `Patt…
redsun82 Aug 14, 2026
8c8d0b6
Rust: add `qltest_edition` option and cap lints in qltest check
redsun82 Aug 14, 2026
e798e21
Rust: accept qltest changes for rust-analyzer 0.0.347
redsun82 Aug 14, 2026
f656e39
Merge branch 'main' into redsun82-rust-analyzer-update
redsun82 Aug 14, 2026
e1b27ae
Rust: pin test toolchain to 1.95 for `use Struct::{self}`
redsun82 Aug 14, 2026
f6e32a3
Rust: add CFG support for `DerefPat` pattern
redsun82 Aug 14, 2026
7faf81f
Rust: reconstruct format-macro expansions on pre-1.94 toolchains
redsun82 Aug 14, 2026
081d762
Merge pull request #22350 from github/redsun82-format-macro-flow-reco…
redsun82 Aug 17, 2026
ef41c1c
Rust: rustfmt extractor sources
redsun82 Aug 17, 2026
90f59bf
Merge origin/main into redsun82-rust-analyzer-update
redsun82 Aug 17, 2026
e51dc86
Update Rust log injection expected
redsun82 Aug 18, 2026
6dfacd0
Merge remote-tracking branch 'origin/main' into redsun82-rust-analyze…
redsun82 Aug 18, 2026
c537c1b
Rust: correct CWE-770 GlobalAlloc MISSING comments
redsun82 Aug 18, 2026
55cc092
Merge branch 'main' into redsun82-rust-analyzer-update
redsun82 Aug 18, 2026
150e30c
Merge commit '55cc0920b2d515d9e976ab196e2c74cc4ab4a3a3' into redsun82…
redsun82 Aug 18, 2026
61ff9d0
Merge remote-tracking branch 'origin/main' into redsun82-rust-analyze…
redsun82 Aug 19, 2026
e082ae8
Rust: Expand the test cases.
geoffw0 Aug 19, 2026
0ce4b7b
Rust: Add models.
geoffw0 Aug 19, 2026
ac0cf1a
Rust: Change note.
geoffw0 Aug 19, 2026
846666e
Rust: Update comment.
geoffw0 Aug 19, 2026
35423c2
Rust: Accept fixes for rust/cleartext-logging.
geoffw0 Aug 19, 2026
7ae9580
Merge branch 'main' into redsun82-rust-analyzer-update
redsun82 Aug 20, 2026
a3c6264
Merge remote-tracking branch 'upstream/redsun82-rust-analyzer-update'…
geoffw0 Aug 24, 2026
8b153a1
Rust: Update format of the new MaD models.
geoffw0 Aug 24, 2026
0195e2e
Rust: Accept changes to .expected from previous commit and merge.
geoffw0 Aug 24, 2026
6ec597f
Merge branch 'main' into redsun82-rust-analyzer-update
redsun82 Aug 24, 2026
217cf52
Rust: address extractor review comments
redsun82 Aug 24, 2026
c1f539f
Rust: rustfmt the reconstruction helper
redsun82 Aug 24, 2026
575ff15
Rust: drop stale lifetime from codegen template
redsun82 Aug 24, 2026
5b67e28
Merge remote-tracking branch 'origin/main' into redsun82-rust-analyze…
redsun82 Aug 26, 2026
8156dc2
CWE-770: correct GlobalAlloc sink MISSING comment
redsun82 Aug 26, 2026
8c0b38a
Merge branch 'redsun82-rust-analyzer-update' into formatflow
geoffw0 Aug 26, 2026
5bcbb8f
Rust: Accept changes to .expected files following merge.
geoffw0 Aug 26, 2026
f2505df
Rust: Refactor `reconstruct` and `split_arguments`
paldepind Aug 27, 2026
aa4875c
Rust: Make the `path` in `Translator` a `PathBuf`
paldepind Aug 27, 2026
e8d8a67
Merge pull request #22440 from github/rust-analyzer-update-tweaks
redsun82 Aug 27, 2026
deafc1b
Merge pull request #22390 from geoffw0/formatflow
redsun82 Aug 27, 2026
15c543e
Merge branch 'main' into redsun82-rust-analyzer-update
redsun82 Aug 31, 2026
8203f08
Merge branch 'main' into redsun82-rust-analyzer-update
redsun82 Aug 31, 2026
485d1d8
Add changed framework coverage reports
github-actions[bot] Sep 1, 2026
5442f38
Unified: Add Callable type
aschackmull Aug 31, 2026
8f3eb6d
Unified: Add BinaryExpr.getAnOperand to FacadeAst.
aschackmull Sep 1, 2026
a2149b2
Unified: Add more logical expressions to AstExtra.
aschackmull Sep 1, 2026
3c873d9
Unified: Add qldoc.
aschackmull Sep 1, 2026
b90f6b7
CFG: Exclude blocks from post-order in case they're Exprs.
aschackmull Aug 31, 2026
83b718b
CFG: Exclude 'try's from post-order in case they're Exprs.
aschackmull Sep 1, 2026
b4c9481
C#: Add NuGet feed list to the unit tests.
michaelnebel Aug 31, 2026
0f11e7c
C#: Move feed prefix logic out of the feed manager.
michaelnebel Aug 31, 2026
043d486
C#: Update unit tests to reflect the new logic.
michaelnebel Aug 31, 2026
b36eff4
C#: Introduce IFileProvider interface.
michaelnebel Aug 31, 2026
3f15f33
C#: Introduce interface for DependabotProxy.
michaelnebel Aug 31, 2026
75c375f
C#: Make FeedManager unit-testable.
michaelnebel Aug 31, 2026
098ad00
C#: Move DotNetStub into its own file.
michaelnebel Aug 31, 2026
752b2ff
C#: Add some Feed manager unit tests.
michaelnebel Aug 31, 2026
264d917
Unified: Add a debug query to view the AST as a graph.
aschackmull Sep 1, 2026
e3da22b
CPP: Disable dynamic reordering for AliasedSSA::isCoveredOffset
kaspersv Sep 1, 2026
e9ba7f4
Unified: Move `extension` workaround into static name binding library
hvitved Sep 1, 2026
02ff376
Unified: Enable on Arm64
jketema Sep 1, 2026
b578f23
Unified: simplify Bazel build
jketema Sep 1, 2026
5a40ac8
Unified: fix formatting
jketema Sep 1, 2026
5147ca6
Rust: Add source/sink/barrier MaD trait tests
hvitved Aug 27, 2026
2cbcf7b
FlowSummaryImpl: Align source/sink/barrier prioriterization with that…
hvitved Aug 27, 2026
4e86a8f
Rust: Derive source/sink/barrier MaD implementation models from trait…
hvitved Aug 27, 2026
905e311
Use HTTPS for Wikimedia query-help links
miachillgood Aug 22, 2026
79bad8b
Fix synchronized query-help file
miachillgood Aug 29, 2026
38b09d3
Ruby: Disable dynamic reordering for select predicate
kaspersv Sep 1, 2026
7f1c872
Unified: Add control flow graph.
aschackmull Aug 28, 2026
04cc576
Apply suggestion from @asgerf
aschackmull Sep 2, 2026
a371a6e
Unified: Make pattern a subtype of expr.
aschackmull Sep 2, 2026
b3a26b5
CFG: Rename ForeachStmt to ForEachStmt.
aschackmull Sep 2, 2026
e76361b
C#: Disable dynamic reordering for Unification::Gvn::unifiableTypeArg…
kaspersv Sep 2, 2026
e5f8808
Rust: Force stable toolchain
paldepind Sep 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
FlowSummaryImpl: Align source/sink/barrier prioriterization with that…
… for summaries
  • Loading branch information
hvitved authored and paldepind committed Sep 3, 2026
commit 2cbcf7bab6f1e3d6a5eabb0f46bc52f87b6d31b4
20 changes: 10 additions & 10 deletions cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@ module Input implements InputSig<Location, DataFlowImplSpecific::CppDataFlow> {

class SummarizedCallableBase = Function;

class SourceBase = Function;

class SinkBase = Function;

class FlowSummaryCallBase = CallInstruction;

predicate callableFromSource(SummarizedCallableBase c) { exists(c.getBlock()) }
Expand Down Expand Up @@ -232,7 +228,7 @@ private module Input2 implements Impl::Private::InputSig2 {

bindingset[source, sc]
SourceSinkReportingElement getASourceReportingElement(
Input::SourceBase source, Impl::Private::SummaryComponent sc
Input::SummarizedCallableBase source, Impl::Private::SummaryComponent sc
) {
exists(Call call | call.getTarget() = source |
sc = Impl::Private::SummaryComponent::return(_) and
Expand Down Expand Up @@ -312,7 +308,7 @@ private module Input2 implements Impl::Private::InputSig2 {

bindingset[sink, sc]
SourceSinkReportingElement getASinkReportingElement(
Input::SinkBase sink, Impl::Private::SummaryComponent sc
Input::SummarizedCallableBase sink, Impl::Private::SummaryComponent sc
) {
exists(Call call, ArgumentPosition pos |
call.getTarget() = sink and
Expand Down Expand Up @@ -525,9 +521,10 @@ private class SourceModelFunction extends Public::SourceElement instanceof Funct
}

override predicate isSource(
string output, string kind, Public::Provenance provenance, string model
string output, string kind, Public::Provenance provenance, boolean isExact, string model
) {
sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model)
sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and
isExact = true
}
}

Expand All @@ -544,7 +541,10 @@ private class SinkModelFunction extends Public::SinkElement instanceof Function
this = interpretElement(namespace, type, subtypes, name, signature, ext)
}

override predicate isSink(string input, string kind, Public::Provenance provenance, string model) {
sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, model)
override predicate isSink(
string input, string kind, Public::Provenance provenance, boolean isExact, string model
) {
sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, model) and
isExact = true
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,10 @@ module Input implements InputSig<Location, DataFlowImplSpecific::CsharpDataFlow>
)
}

class SourceBase extends Void {
class FlowSummaryCallBase extends Void {
Location getLocation() { none() }
}

class SinkBase = SourceBase;

class FlowSummaryCallBase = SourceBase;

DataFlowCallable getSummarizedCallableAsDataFlowCallable(SummarizedCallableBase c) {
result.asSummarizedCallable() = c
}
Expand Down
6 changes: 1 addition & 5 deletions go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,10 @@ module Input implements InputSig<Location, DataFlowImplSpecific::GoDataFlow> {

class SummarizedCallableBase = Callable;

class SourceBase extends Void {
class FlowSummaryCallBase extends Void {
Location getLocation() { none() }
}

class SinkBase = SourceBase;

class FlowSummaryCallBase = SourceBase;

predicate callableFromSource(SummarizedCallableBase c) { exists(c.getFuncDef()) }

DataFlowCallable getSummarizedCallableAsDataFlowCallable(SummarizedCallableBase c) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,10 @@ module Input implements InputSig<Location, DataFlowImplSpecific::JavaDataFlow> {
sc.asCallable() = any(Callable c | c.fromSource() and not c.isStub())
}

class SourceBase extends Void {
class FlowSummaryCallBase extends Void {
Location getLocation() { none() }
}

class SinkBase = SourceBase;

class FlowSummaryCallBase = SourceBase;

DataFlowCallable getSummarizedCallableAsDataFlowCallable(SummarizedCallableBase c) {
result.asSummarizedCallable() = c
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,10 @@ class SummarizedCallableBase extends string {
Location getLocation() { none() }
}

class SourceBase extends Void {
class FlowSummaryCallBase extends Void {
Location getLocation() { none() }
}

class SinkBase = SourceBase;

class FlowSummaryCallBase = SourceBase;

DataFlowCallable getSummarizedCallableAsDataFlowCallable(SummarizedCallableBase c) {
result.asLibraryCallable() = c
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,10 @@ module Input implements InputSig<Location, DataFlowImplSpecific::PythonDataFlow>
Location getLocation() { none() }
}

class SourceBase extends Void {
class FlowSummaryCallBase extends Void {
Location getLocation() { none() }
}

class SinkBase = SourceBase;

class FlowSummaryCallBase = SourceBase;

predicate callableFromSource(SummarizedCallableBase c) { none() }

DataFlowCallable getSummarizedCallableAsDataFlowCallable(SummarizedCallableBase c) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,10 @@ module Input implements InputSig<Location, DataFlowImplSpecific::RubyDataFlow> {
Location getLocation() { result instanceof EmptyLocation }
}

class SourceBase extends Void {
class FlowSummaryCallBase extends Void {
Location getLocation() { none() }
}

class SinkBase = SourceBase;

class FlowSummaryCallBase = SourceBase;

predicate callableFromSource(SummarizedCallableBase c) { none() }

DataFlowCallable getSummarizedCallableAsDataFlowCallable(SummarizedCallableBase c) {
Expand Down
Loading