Граф коммитов

699 Коммитов

Автор SHA1 Сообщение Дата
Mathias Vorreiter Pedersen 0150269503 Merge branch 'rc/3.14' into rc-3.14-mergeback-2 2024-06-13 09:14:40 +01:00
Mathias Vorreiter Pedersen 5b3403c4b1 C++: Fix bad join in 'lastRefRedefExt'. 2024-06-12 15:24:58 +01:00
Mathias Vorreiter Pedersen 3351b9547d Merge branch 'rc/3.14' into rc-3.14-mergeback 2024-06-11 16:21:08 +01:00
Anders Schack-Mulligen 939ae4a561 Dataflow: Remove unused import. 2024-06-11 08:55:44 +02:00
github-actions[bot] 8a25081a0e Post-release preparation for codeql-cli-2.17.5 2024-06-10 15:33:08 +00:00
github-actions[bot] 877bfa2468 Release preparation for version 2.17.5 2024-06-10 13:40:39 +00:00
Anders Schack-Mulligen 7e980d9524 Add a bit more qldoc. 2024-06-07 11:47:50 +02:00
Anders Schack-Mulligen 4ec4da4c8c Dataflow/Java: Add support for pretty-printed provenace in tests. Convert one test. 2024-06-07 11:45:13 +02:00
Mathias Vorreiter Pedersen 5deb9002bf
Merge pull request #16665 from geoffw0/yml
C++: Support for extension models (.yml)
2024-06-06 14:21:42 +01:00
Geoffrey White 894497218d Shared: Recognize 'remote-sink' in ModelValidation.qll. 2024-06-06 12:49:13 +01:00
Tom Hvitved e6dc36b2c4
Merge pull request #16636 from hvitved/tree-sitter/verbosity-fix
Tree-sitter: Verbosity fixes
2024-06-04 08:33:28 +02:00
Tom Hvitved 58ce3e805e
Merge pull request #16633 from hvitved/dataflow/inline-pred
Data flow: Inline `isUnreachableInCall1`
2024-05-31 20:12:14 +02:00
Tom Hvitved beeae69845 Tree-sitter: Verbosity fixes 2024-05-31 20:10:19 +02:00
Tom Hvitved be4fce26c0
Merge pull request #16631 from hvitved/tree-sitter/multi-file-lists
Tree-sitter: Allow for multiple file lists in simple extractor
2024-05-31 12:47:11 +02:00
Tom Hvitved 42d87f6d19 Data flow: Inline `isUnreachableInCall1` 2024-05-31 12:25:11 +02:00
Tom Hvitved d6a3765597 Tree-sitter: Allow for multiple file lists in simple extractor 2024-05-31 11:15:21 +02:00
Tom Hvitved 775625968a
Merge pull request #16602 from hvitved/dataflow/fix-bad-join
Data flow: Fix bad join
2024-05-29 09:53:56 +02:00
Anders Schack-Mulligen 2f95851537
Merge pull request #16603 from aschackmull/dataflow/location
Dataflow/Go: Add getLocation to DataFlowCall and DataFlowCallable for easier debugging.
2024-05-29 08:58:22 +02:00
github-actions[bot] 906b65d09c Post-release preparation for codeql-cli-2.17.4 2024-05-28 18:02:25 +00:00
Tom Hvitved 059ce1ba15 Data flow: Fix bad join
Before
```
Evaluated relational algebra for predicate _DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::AccessPathApprox__#count_range@9acc2d7t with tuple counts:
              875   ~0%    {3} r1 = SCAN `num#DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::TCons1#055add5f` OUTPUT _, In.0, In.1
              875   ~0%    {3}    | REWRITE WITH Tmp.0 := 1, Out.0 := (InOut.2 - Tmp.0)
        113896125   ~1%    {3}    | JOIN WITH `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::AccessPathApprox.len/0#dispred#e932df4d_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2
        113896125   ~7%    {4}    | JOIN WITH `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::AccessPathApprox.getFront/0#dispred#5d402e21` ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2, Rhs.1
             2404   ~9%    {5}    | JOIN WITH `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::Stage5::consCand/3#cd06ec82_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Rhs.2, Lhs.3, _
             2404  ~14%    {5}    | REWRITE WITH Out.4 := 1
                           return r1

Evaluated relational algebra for predicate DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::count1to2unfold/1#9ad56f09@c47f87cq with tuple counts:
        365  ~0%    {2} r1 = JOIN `num#DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::TCons1#055add5f_102#join_rhs` WITH `__DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::AccessPathAppro__#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Rhs.2
                    return r1
```

After
```
Evaluated relational algebra for predicate DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::stage5ConsCand/4#ce755854@46e7620j with tuple counts:
        848899   ~5%    {3} r1 = SCAN `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::AccessPathApprox.len/0#dispred#e932df4d` OUTPUT In.0, _, In.1
        848899   ~0%    {2}    | REWRITE WITH Tmp.1 := 1, Out.1 := (Tmp.1 + In.2) KEEPING 2
        848899   ~0%    {3}    | JOIN WITH `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::AccessPathApprox.getFront/0#dispred#5d402e21` ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Rhs.1
         12961  ~14%    {4}    | JOIN WITH `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::Stage5::consCand/3#cd06ec82_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Lhs.2, Lhs.1
                        return r1

Evaluated relational algebra for predicate DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::stage5ConsCand/4#ce755854_0312_1#count_range@a0e570ci with tuple counts:
        11548  ~1%    {5} r1 = SCAN `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::stage5ConsCand/4#ce755854` OUTPUT In.0, In.3, In.1, In.2, _
        11548  ~3%    {5}    | REWRITE WITH Out.4 := 1
                      return r1

Evaluated relational algebra for predicate DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::count1to2unfold/1#9ad56f09@e0e6143p with tuple counts:
        3981  ~0%    {3} r1 = AGGREGATE `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::stage5ConsCand/4#ce755854_0312_1#count_range`, `DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::stage5ConsCand/4#ce755854_0312_1#count_range` ON  WITH COUNT OUTPUT In.0, In.1, Agg.0
         365  ~0%    {2}    | JOIN WITH `num#DataFlowImpl::Impl<ExceptionInformationExposure::ExceptionInformationExposure::C>::TCons1#055add5f` ON FIRST 2 OUTPUT Rhs.2, Lhs.2
                     return r1
```
2024-05-28 19:59:30 +02:00
github-actions[bot] 33b4ae8bbb Release preparation for version 2.17.4 2024-05-28 15:44:32 +00:00
Anders Schack-Mulligen 3b12f69dd9 Dataflow/Go: Add getLocation to calls and callables for easier debugging. 2024-05-28 13:47:08 +02:00
Tom Hvitved 69fb2bb97c
Merge pull request #16597 from hvitved/tree-sitter/empty-location
Tree-sitter: Emit `empty_location` relation to avoid scan
2024-05-27 15:19:15 +02:00
Anders Schack-Mulligen 51c48c767e Dataflow: Address review comments (take 2). 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 4ff37cc7b6 Dataflow: Address review comments. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 8085460e4a C++/Shared: Fix join order issues. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 5a259843bb Dataflow: Switch call context to a set representation. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 972b81bbd1 Util: Allow best-effort total orders with a reasonable fallback. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen b83416f3a1 Dataflow: Make two predicates private. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 52a232e91c Dataflow: Make CallContext type private to DataFlowImplCommon. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 947c2bf722 Dataflow: Move two declarations. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 1dd1f12919 Dataflow: Move Level1CallContext to DataFlowImplCommon 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen e1e6cd9b3d Dataflow: Simplify: remove Level1CallContextInput module 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen f6eb82ee15 Dataflow: Simplify. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 5ac96d009a Dataflow: Move viableImplNotCallContextReducedReverse to DataFlowImplCommon::CallContextSensitivity. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 740bb84423 Dataflow: Rename prunedViableImplInCallContextReverse to viableImplCallContextReducedReverse. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 0561c65b61 Dataflow: Rename noPrunedViableImplInCallContext to viableImplNotCallContextReduced. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen aa87243e3a Dataflow: Rename prunedViableImplInCallContext to viableImplCallContextReduced 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen ace369faa8 Dataflow: Share getCallContextCall in DataFlowImplCommon::CallContextSensitivity. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen b2e3d784f6 Dataflow: Share getCallContextReturn in DataFlowImplCommon::CallContextSensitivity. 2024-05-27 11:01:52 +02:00
Anders Schack-Mulligen 79b1cd7d3d Dataflow: Refactor getLocalCc to avoid reference to NodeEx. 2024-05-27 11:01:51 +02:00
Anders Schack-Mulligen eb0b92350a Dataflow: Switch column order in viableImplCallContextReducedReverse. 2024-05-27 11:01:51 +02:00
Anders Schack-Mulligen 86e6d0b1e1 Dataflow: Switch local call contexts to use canonical representative. 2024-05-27 11:01:51 +02:00
Anders Schack-Mulligen 012e1b498d Dataflow: Remove duplicate definitions 2024-05-27 11:01:51 +02:00
Anders Schack-Mulligen bc8ca1af86 Dataflow: Introduce NodeRegions for use in isUnreachableInCall. 2024-05-27 11:01:51 +02:00
Anders Schack-Mulligen 486eaad566 Shared: Add MakeSets module. 2024-05-27 11:01:51 +02:00
Tom Hvitved 94d2e9591d Tree-sitter: Emit `empty_location` relation to avoid scan 2024-05-27 10:39:21 +02:00
Cornelius Riemenschneider 8c46b61e85 Ruby: Change how we pull in `shared/tree-sitter-extractor` dependency
Previously, we pulled in the shared tree-sitter extractor via a `git`
dependency in `Cargo.toml` to address a `rules_rust` limitation (no `path`
dependencies outside of the cargo workspace)). This was a problem,
as that means we're cloning `github/codeql` _again_ for the build, which is
quite slow.

I found another way that is faster, and still produces correct builds
for both `cargo`` and `rules_rust`:
* Cargo depends on a fake crate that has the same dependencies as the real crate (thanks to `sync-files.py`). Therefore, cargo pulls in the right dependencies into the lockfile, which bazel targets
* For local builds, we override the path to that dependency in a cargo config, so we're pulling in the correct code
* rules_rust only uses `path` dependencies for collecting transitive dependencies, it never pulls in the code from there. So far that, we manually provide a `BUILD.bazel` file for the shared extractor, and depend on that.
2024-05-24 15:37:35 +02:00
Tom Hvitved 0dbce3d077
Merge pull request #16451 from hvitved/treesitter/codeql-verbosity
Tree-sitter: Respect verbosity defined in `CODEQL_VERBOSITY`
2024-05-24 11:24:01 +02:00
Dave Bartolomeo f498e05099
Merge branch 'main' into dbartol/v1 2024-05-23 14:37:28 -04:00