Mathias Vorreiter Pedersen
fefb35bede
Merge pull request #20016 from MathiasVP/add-more-thread-create-models
...
C++: Add more thread creation models
2025-07-10 16:44:04 +01:00
Jeroen Ketema
96c379a076
C++: Fix formatting and typo
2025-07-10 15:56:11 +02:00
Geoffrey White
7ba18fa5d0
Merge branch 'main' into models3b
2025-07-10 14:53:09 +01:00
Jeroen Ketema
214969feaf
C++: Add change note
2025-07-10 15:52:27 +02:00
Geoffrey White
439cf7a659
Merge pull request #19942 from geoffw0/models1
...
Rust: Update legacy MaD models 2
2025-07-10 14:50:48 +01:00
Jeroen Ketema
b32a8c2489
C++: Add dataflow predicate for checking if a node is the final value of a parameter
2025-07-10 15:47:23 +02:00
Jeroen Ketema
990b7f0b70
C++: Add change note
2025-07-10 15:13:15 +02:00
Geoffrey White
0c075abe3f
Rust: Fix merge (I picked the wrong version).
2025-07-10 13:59:10 +01:00
Geoffrey White
a6b4a18d51
Rust: Add negative patterns.
2025-07-10 13:56:14 +01:00
Geoffrey White
8f95e26ed6
Rust: Combine regexs where possible (likely better performance).
2025-07-10 13:56:12 +01:00
Geoffrey White
99e62d66e5
Rust: Add sensitive data patterns.
2025-07-10 13:56:11 +01:00
Geoffrey White
2cd4d984cc
Merge pull request #20002 from geoffw0/moresensitive1
...
Rust: Add more test cases for sensitive data
2025-07-10 13:54:20 +01:00
Geoffrey White
117e330d53
Merge branch 'main' into models1
2025-07-10 13:52:48 +01:00
Geoffrey White
3debd1ada9
Merge pull request #19948 from geoffw0/models5
...
Rust: Update legacy MaD models 4
2025-07-10 13:50:54 +01:00
Tom Hvitved
70476c0e14
Add change note
2025-07-10 14:50:00 +02:00
Mathias Vorreiter Pedersen
7ddc909d4e
C++: Accept test changes after review.
2025-07-10 13:29:19 +01:00
Tamás Vajk
1351f57d2b
Merge pull request #19998 from tamasvajk/quality/label-in-switch
...
Java: Add query to detect non-case labels in switch statements
2025-07-10 14:13:38 +02:00
Mathias Vorreiter Pedersen
dda4a97080
Update cpp/ql/test/library-tests/dataflow/external-models/test.cpp
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-07-10 13:00:43 +01:00
Tom Hvitved
054bbc2ff7
Merge pull request #20015 from hvitved/rust/fix-bad-join
...
Rust: Fix bad join
2025-07-10 13:59:07 +02:00
Mathias Vorreiter Pedersen
b547dc4621
C++: Add change note.
2025-07-10 12:52:55 +01:00
Tom Hvitved
c7d20eb98a
Rust: Update expected test output
2025-07-10 13:52:19 +02:00
Tom Hvitved
ebde0bdc47
Rust: Disambiguate calls to associated functions
2025-07-10 13:52:17 +02:00
Tom Hvitved
95c2b9f8f7
Rust: Add more type inference tests
2025-07-10 13:52:09 +02:00
Mathias Vorreiter Pedersen
89cf215ebb
C++: Add models for 'std::thread' and accept test changes.
2025-07-10 12:45:20 +01:00
Mathias Vorreiter Pedersen
2062a774fc
C++: Add 'std::thread' test with missing flow.
2025-07-10 12:44:02 +01:00
Mathias Vorreiter Pedersen
d198a964e0
C++: Add a model for 'pthread_create' and accept test changes.
2025-07-10 12:20:24 +01:00
Mathias Vorreiter Pedersen
675a072639
C++: Add 'pthread_create' test with missing flow.
2025-07-10 12:16:23 +01:00
Owen Mansel-Chan
e362e536c0
Merge pull request #20009 from github/dependabot/go_modules/go/extractor/extractor-dependencies-0e1361fb85
...
Bump golang.org/x/mod from 0.25.0 to 0.26.0 in /go/extractor in the extractor-dependencies group
2025-07-10 11:51:03 +01:00
Tom Hvitved
d4de56c157
Rust: Fix bad join
...
Before
```
Evaluated relational algebra for predicate TypeInference::getRangeType/1#b4219ae9@c15c3f0b with tuple counts:
1 ~0% {1} r1 = CONSTANT(unique string)[".."]
692 ~0% {1} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1
453 ~0% {1} r2 = JOIN r1 WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0
266 ~1% {1} r3 = JOIN r2 WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
10684422 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
10684422 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::Range"
266 ~0% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
363 ~3% {1} r4 = JOIN r1 WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
97 ~2% {1} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
3896199 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
3896199 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeTo"
97 ~1% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
187 ~0% {1} r5 = r2 AND NOT `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa_0#antijoin_rhs`(FIRST 1)
7511229 ~2% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
7511229 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeFrom"
187 ~1% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
1 ~0% {1} r6 = CONSTANT(unique string)["..="]
138 ~0% {1} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1
131 ~0% {1} r7 = JOIN r6 WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0
131 ~0% {1} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
5261877 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
5261877 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeInclusive"
131 ~3% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
138 ~0% {1} r8 = JOIN r6 WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
7 ~0% {1} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
281169 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
281169 ~2% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeToInclusive"
7 ~0% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
688 ~0% {2} r9 = r3 UNION r4 UNION r5 UNION r7 UNION r8
return r9
```
After
```
Evaluated relational algebra for predicate TypeInference::getRangeType/1#b4219ae9@7d06d41t with tuple counts:
1 ~0% {2} r1 = SCAN Stdlib::RangeToStruct#236b6b84 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := ".."
692 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
363 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
97 ~0% {2} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
1 ~0% {2} r2 = SCAN Stdlib::RangeFromStruct#8edcefe7 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := ".."
692 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
453 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
187 ~0% {2} | AND NOT `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa_0#antijoin_rhs`(FIRST 1)
1 ~0% {2} r3 = SCAN Stdlib::RangeToInclusiveStruct#fe43a433 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := "..="
138 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
138 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
7 ~0% {2} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
1 ~0% {2} r4 = SCAN Stdlib::RangeStruct#0fabc810 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := ".."
692 ~3% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
453 ~4% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
266 ~2% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
1 ~0% {2} r5 = SCAN Stdlib::RangeInclusiveStruct#a869750a OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := "..="
138 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
131 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
131 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
688 ~7% {2} r6 = r1 UNION r2 UNION r3 UNION r4 UNION r5
return r6
```
2025-07-10 12:34:08 +02:00
Kasper Svendsen
0739c03d03
Overlay: Add discarding of base XML locatables for Java
2025-07-10 12:31:16 +02:00
Kasper Svendsen
d7094a96b5
Overlay: Add discarding of all Java base properties
2025-07-10 12:31:15 +02:00
Arthur Baars
b573246639
Merge pull request #20003 from github/aibaars/query-result
...
Rust: add test cases for basic unwrapping and pattern matching
2025-07-10 12:30:59 +02:00
Kasper Svendsen
767d55bb18
Merge pull request #20013 from kaspersv/kaspersv/ql4ql-discard-entity-preds-alive
...
QL4QL: Discard predicates are always alive
2025-07-10 12:30:44 +02:00
Kasper Svendsen
c7a3b6543e
Address copilot comment
2025-07-10 12:01:29 +02:00
Jeroen Ketema
399967b507
C++: Do not alert on unreachable code in cpp/incorrect-string-type-conversion
2025-07-10 11:49:12 +02:00
Jeroen Ketema
2907861075
C++: Add cpp/incorrect-string-type-conversion test with unreachable code
2025-07-10 11:48:53 +02:00
Jeroen Ketema
acc06fab20
C++: Convert cpp/incorrect-string-type-conversion test to inline expectations
2025-07-10 11:48:18 +02:00
Geoffrey White
4dea5eef70
Rust: Fix futures_io models.
2025-07-10 10:41:09 +01:00
Nick Rolfe
ab9ba02ea1
Ruby: enable overlay compilation
2025-07-10 10:38:06 +01:00
Arthur Baars
cc5e6b2195
Rust: add test cases for basic unwrapping and pattern matching
2025-07-10 11:15:07 +02:00
Jeroen Ketema
18760b4025
Merge pull request #10923 from dscho/patch-1
...
Download GitHub database: fix `gh` invocation
2025-07-10 11:11:59 +02:00
Kasper Svendsen
1723c6ed09
QL4QL: Add discard predicate to dead code test
2025-07-10 11:09:43 +02:00
Kasper Svendsen
9f260cf72f
QL4QL: Discard predicates are always alive
2025-07-10 11:09:42 +02:00
Kasper Svendsen
9de3617032
QL4QL: Add overlay[discard_entity] annotation
2025-07-10 11:09:42 +02:00
Arthur Baars
7c5cdd9a9b
Merge pull request #20001 from github/aibaars/trait-impl-int
...
Rust: fix missing canonical paths for trait impls on builtin numeric types
2025-07-10 10:53:01 +02:00
Jeroen Ketema
51f639111b
Merge pull request #20010 from jketema/change-typo
...
C++: Fix some typos in recent change notes
2025-07-10 10:48:40 +02:00
Geoffrey White
8177b0938d
Merge branch 'main' into models5
2025-07-10 09:41:48 +01:00
Jeroen Ketema
928b7475b2
C++: Fix some typos in recent change notes
2025-07-10 10:22:41 +02:00
Geoffrey White
ae3253b9c3
Merge pull request #20004 from geoffw0/tt
...
Rust: Add type inference test cases for tuples.
2025-07-10 09:12:47 +01:00
Johannes Schindelin
3bff6c4a4a
Download GitHub database: fix gh invocation on Windows
...
When running `gh api /repos/...` in the Git Bash on Windows, it leads to
a 404. The reason is the automatic path conversion from "Unix-y" paths
on the command-line to proper Windows paths, as described in detail
https://www.msys2.org/docs/filesystem-paths/ . Git Bash simply has no
chance to understnad that `/repos/...` is not referring to an absolute
path on the local filesystem.
Let's just skip the leading slash. This is as valid an invocation, and
sidesteps that path conversion on Windows.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2025-07-10 10:01:18 +02:00