Anders Schack-Mulligen
|
353d5f82a6
|
Merge pull request #12984 from aschackmull/dataflow/instanceof-node
Dataflow: Replace "extends Node" with "instanceof Node".
|
2023-05-02 13:52:33 +02:00 |
|
Mathias Vorreiter Pedersen
|
ab67103e6e
|
Merge pull request #12966 from MathiasVP/dataflow-for-static-vars
C++: Dataflow for static local variables
|
2023-05-02 11:52:43 +01:00 |
|
github-actions[bot]
|
18d4af994d
|
Post-release preparation for codeql-cli-2.13.1
|
2023-05-02 10:50:20 +00:00 |
|
Anders Schack-Mulligen
|
ca09649679
|
Dataflow: Forward hasLocationInfo.
|
2023-05-02 10:48:32 +02:00 |
|
Mathias Vorreiter Pedersen
|
fbc872cf1d
|
Update cpp/ql/lib/change-notes/2023-04-28-static-local-dataflow.md
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
|
2023-05-02 09:07:57 +01:00 |
|
Anders Schack-Mulligen
|
5927bb2030
|
Dataflow: Replace "extends Node" with "instanceof Node".
|
2023-05-02 09:48:34 +02:00 |
|
Robert Marsh
|
c6e0ee2695
|
C++: fix duplicated UnreachedInstruction in raw IR
|
2023-05-01 22:54:37 -04:00 |
|
Robert Marsh
|
6dfc59874b
|
C++: more UnreachedInstruction fixes
|
2023-05-01 22:25:18 -04:00 |
|
Robert Marsh
|
7f12f6dc3e
|
C++/C#: format and sync identical files
|
2023-05-01 22:25:18 -04:00 |
|
Robert Marsh
|
44b6af652e
|
C++: use Options::exits() for noreturn functions
|
2023-05-01 22:25:17 -04:00 |
|
Robert Marsh
|
c01ee597fa
|
C++: handle calls to noreturn functions
|
2023-05-01 22:25:12 -04:00 |
|
Anders Schack-Mulligen
|
6c8cb0dc5e
|
Merge pull request #12930 from aschackmull/dataflow/split-typedcontent
Dataflow: Refactor access paths to split TypedContent into an explicit pair
|
2023-05-01 14:58:15 +02:00 |
|
Mathias Vorreiter Pedersen
|
490b253dc8
|
C++: Add change note.
|
2023-04-28 17:48:01 +01:00 |
|
Mathias Vorreiter Pedersen
|
498395b50e
|
C++: Add QLDoc to getA(nIndirect)BarrierNode.
|
2023-04-28 17:42:14 +01:00 |
|
Mathias Vorreiter Pedersen
|
8c8b919dfb
|
C++: Add an API for indirect barrier guards and use it in tests.
|
2023-04-28 14:09:08 +01:00 |
|
github-actions[bot]
|
3bd29171fb
|
Release preparation for version 2.13.1
|
2023-04-28 12:14:35 +00:00 |
|
Mathias Vorreiter Pedersen
|
43527573d0
|
C++: Fix back edge detection for phi nodes.
|
2023-04-28 11:58:56 +01:00 |
|
Mathias Vorreiter Pedersen
|
2716c73f87
|
C++: Add change note.
|
2023-04-28 10:49:49 +01:00 |
|
Mathias Vorreiter Pedersen
|
c35cb70c9f
|
C++: Fix inconsistencies.
|
2023-04-28 10:40:18 +01:00 |
|
Mathias Vorreiter Pedersen
|
ee7b137c24
|
C++: Add dataflow for static locals.
|
2023-04-28 10:24:57 +01:00 |
|
Mathias Vorreiter Pedersen
|
5f4d0892ff
|
Merge pull request #12900 from MathiasVP/ir-translate-constant-static-local-vars-2
|
2023-04-28 08:46:25 +01:00 |
|
Robert Marsh
|
376e01ae3d
|
C++: update docs for new range analysis AST wrapper
|
2023-04-27 14:59:18 -04:00 |
|
Mathias Vorreiter Pedersen
|
e506f638fc
|
DataFlow: Sync identical files.
|
2023-04-27 18:40:33 +01:00 |
|
Mathias Vorreiter Pedersen
|
478f2dca3b
|
C++: Add a new dataflow consistency test.
|
2023-04-27 18:39:41 +01:00 |
|
Anders Schack-Mulligen
|
71ae0909d8
|
Dataflow: Enforce type pruning in all forward stages.
|
2023-04-27 14:55:26 +02:00 |
|
Anders Schack-Mulligen
|
9140cbefc0
|
Dataflow: Sync.
|
2023-04-27 14:55:23 +02:00 |
|
Robert Marsh
|
3f8638643e
|
C++: respond to PR comments
|
2023-04-26 14:56:10 -04:00 |
|
Mathias Vorreiter Pedersen
|
6bfdbef697
|
C++: Fix implicit 'this'.
|
2023-04-26 18:06:44 +01:00 |
|
Mathias Vorreiter Pedersen
|
b18e096f7f
|
C++: Fix missing result for 'getFunction' and accept test changes.
|
2023-04-26 18:01:39 +01:00 |
|
Mathias Vorreiter Pedersen
|
60aab206b0
|
C++: Join on two columns instead of one.
Before:
```
Evaluated non-recursive predicate TranslatedElement#ea057665::TranslatedElement::getInstructionVariable#1#dispred#fff@146210id in 201548ms (size: 3469729).
Evaluated relational algebra for predicate TranslatedElement#ea057665::TranslatedElement::getInstructionVariable#1#dispred#fff@146210id with tuple counts:
...
1812768 ~3% {3} r65 = JOIN num#InstructionTag#c9183db3::OnlyInstructionTag#f WITH TranslatedExpr#043317a1::TranslatedNonFieldVariableAccess#ff CARTESIAN PRODUCT OUTPUT Rhs.1, Lhs.0, Rhs.0
1812767 ~0% {4} r66 = JOIN r65 WITH Access#8878f617::Access::getTarget#0#dispred#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.0
3996407117 ~3% {5} r67 = JOIN r66 WITH TranslatedElement#ea057665::getIRUserVariable#2#fff_102#join_rhs ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2, Rhs.2
1815194 ~0% {3} r68 = JOIN r67 WITH TranslatedExpr#043317a1::getEnclosingDeclaration#1#ff ON FIRST 2 OUTPUT Lhs.3, Lhs.2, Lhs.4
...
```
After:
```
Evaluated non-recursive predicate TranslatedExpr#043317a1::accessHasEnclosingDeclarationAndVariable#3#fff@665ccb8o in 865ms (size: 2769549).
Evaluated relational algebra for predicate TranslatedExpr#043317a1::accessHasEnclosingDeclarationAndVariable#3#fff@665ccb8o with tuple counts:
2769549 ~1% {3} r1 = JOIN Access#8878f617::Access::getTarget#0#dispred#ff WITH TranslatedExpr#043317a1::getEnclosingDeclaration#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
return r1
...
Evaluated non-recursive predicate TranslatedElement#ea057665::TranslatedElement::getInstructionVariable#1#dispred#fff@7d4d33to in 805ms (size: 3469729).
Evaluated relational algebra for predicate TranslatedElement#ea057665::TranslatedElement::getInstructionVariable#1#dispred#fff@7d4d33to with tuple counts:
...
1963209 ~0% {2} r34 = JOIN TranslatedElement#ea057665::getIRUserVariable#2#fff WITH TranslatedExpr#043317a1::accessHasEnclosingDeclarationAndVariable#3#fff ON FIRST 2 OUTPUT Rhs.2, Lhs.2
1815194 ~2% {2} r35 = JOIN r34 WITH TranslatedExpr#043317a1::TranslatedNonFieldVariableAccess#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1
1815194 ~0% {3} r36 = JOIN r35 WITH num#InstructionTag#c9183db3::OnlyInstructionTag#f CARTESIAN PRODUCT OUTPUT Lhs.1, Rhs.0, Lhs.0
...
```
|
2023-04-26 16:32:43 +01:00 |
|
Anders Schack-Mulligen
|
d681671356
|
Dataflow: Sync.
|
2023-04-26 14:45:07 +02:00 |
|
Mathias Vorreiter Pedersen
|
648c08bcd9
|
C++: Fix enclosing functions for static locals.
|
2023-04-25 17:51:04 +01:00 |
|
Mathias Vorreiter Pedersen
|
d14ee931e1
|
C++: IR translation for non-runtime-initialized static local variables.
|
2023-04-25 17:51:04 +01:00 |
|
Michael Nebel
|
656d8d2451
|
Sync files.
|
2023-04-20 11:29:51 +02:00 |
|
Robert Marsh
|
3c2b4e8456
|
C++: AST-based wrapper for new range analysis
|
2023-04-18 15:52:43 -04:00 |
|
Mathias Vorreiter Pedersen
|
9aca2d8533
|
Merge pull request #12861 from MathiasVP/ignore-more-instructions-for-dataflow
C++: Ignore a few more instructions in dataflow
|
2023-04-18 18:17:11 +01:00 |
|
Alex Ford
|
924ce250dd
|
Merge pull request #12847 from github/post-release-prep/codeql-cli-2.13.0
Post-release preparation for codeql-cli-2.13.0
|
2023-04-18 14:40:40 +01:00 |
|
Mathias Vorreiter Pedersen
|
6e5f09f7bb
|
C++: Ignore more instructions in dataflow.
|
2023-04-18 13:32:24 +01:00 |
|
Mathias Vorreiter Pedersen
|
bb8c3de6b2
|
Merge pull request #12599 from rdmarsh2/rdmarsh2/range-analysis-overflow
C++: add overflow detection to new range analysis
|
2023-04-17 20:18:44 +01:00 |
|
github-actions[bot]
|
648f0e19ec
|
Post-release preparation for codeql-cli-2.13.0
|
2023-04-17 15:39:24 +00:00 |
|
Mathias Vorreiter Pedersen
|
2a14479bf3
|
C++: Autoformat.
|
2023-04-17 09:34:44 +01:00 |
|
Mathias Vorreiter Pedersen
|
a87e67d89d
|
C++: Fix join orders.
Before:
```
Tuple counts for RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::potentiallyOverflowingExpr#2#ff/2@36ed7auu after 42.1s:
365 ~0% {2} r1 = JOIN num#SemanticOpcode#e6f455a5::TNegate#f WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT false, Rhs.1 'expr'
0 ~0% {2} r2 = JOIN num#SemanticOpcode#e6f455a5::TSubOne#f WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT false, Rhs.1 'expr'
365 ~0% {2} r3 = r1 UNION r2
0 ~0% {2} r4 = JOIN num#SemanticOpcode#e6f455a5::TAddOne#f WITH project#SemanticExpr#91573b9a::SemKnownExpr#class#fff_10#join_rhs ON FIRST 1 OUTPUT true, Rhs.1 'expr'
2 ~0% {2} r5 = JOIN m#RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::boundedPhiInp1#6#ffbfff WITH num#SemanticOpcode#e6f455a5::TMul#f CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0 'positively'
22026 ~0% {2} r6 = JOIN r5 WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'positively', Rhs.1 'expr'
2 ~0% {2} r7 = JOIN m#RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::boundedPhiInp1#6#ffbfff WITH num#SemanticOpcode#e6f455a5::TShiftLeft#f CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0 'positively'
1978 ~0% {2} r8 = JOIN r7 WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'positively', Rhs.1 'expr'
24004 ~0% {2} r9 = r6 UNION r8
24004 ~0% {2} r10 = r4 UNION r9
24369 ~0% {2} r11 = r3 UNION r10
2726 ~1% {2} r12 = JOIN project#SemanticExpr#91573b9a::SemDivExpr#fffff WITH project#SemanticExpr#91573b9a::SemKnownExpr#class#fff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.0 'expr'
1900 ~2% {2} r13 = JOIN r12 WITH SemanticType#3725723c::SemFloatingPointType#ff ON FIRST 1 OUTPUT false, Lhs.1 'expr'
4500 ~0% {1} r14 = JOIN SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs WITH num#SemanticOpcode#e6f455a5::TAdd#f ON FIRST 1 OUTPUT Lhs.1 'expr'
0 ~0% {1} r15 = JOIN SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs WITH num#SemanticOpcode#e6f455a5::TPointerAdd#f ON FIRST 1 OUTPUT Lhs.1 'expr'
4500 ~0% {1} r16 = r14 UNION r15
4000 ~0% {2} r17 = JOIN r16 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.0 'expr'
7000 ~0% {2} r18 = JOIN r17 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'expr'
1264 ~0% {2} r19 = JOIN r18 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT Lhs.0, Lhs.1 'expr'
188324151 ~0% {2} r20 = JOIN r19 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'expr', Rhs.1
1000 ~0% {2} r21 = JOIN r20 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 2 OUTPUT false, Lhs.0 'expr'
2900 ~0% {2} r22 = r13 UNION r21
3259 ~2% {2} r23 = JOIN r18 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT Lhs.0, Lhs.1 'expr'
1521124720 ~0% {2} r24 = JOIN r23 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'expr', Rhs.1
3000 ~2% {2} r25 = JOIN r24 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 2 OUTPUT true, Lhs.0 'expr'
```
(I stopped evaluation midway.)
After:
```ql
Evaluated relational algebra for predicate RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::potentiallyOverflowingExpr#2#ff@dc3a0712 with tuple counts:
26269 ~2% {2} r1 = _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_m#RangeAnalysisStage#38d7ce80::R__#shared UNION _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_SemanticType#3725723c::SemFloati__#shared
26269 ~2% {2} r2 = _num#SemanticOpcode#e6f455a5::TAddOne#f_project#SemanticExpr#91573b9a::SemKnownExpr#class#fff_10#joi__#shared UNION r1
41333 ~1% {2} r3 = JOIN _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_num#SemanticOpcode#e6f455a5::TAd__#shared WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
5806 ~2% {2} r4 = JOIN r3 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT Lhs.1, Lhs.0
5806 ~1% {3} r5 = JOIN r4 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
3612 ~0% {2} r6 = JOIN r5 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 2 OUTPUT false, Lhs.2
18476 ~1% {2} r7 = JOIN r3 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT Lhs.1, Lhs.0
18476 ~1% {3} r8 = JOIN r7 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
18444 ~2% {2} r9 = JOIN r8 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 2 OUTPUT true, Lhs.2
22056 ~0% {2} r10 = r6 UNION r9
24137 ~2% {2} r11 = JOIN _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_num#SemanticOpcode#e6f455a5::TPo__#shared WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
16966 ~2% {1} r12 = JOIN r11 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT Lhs.1
16966 ~4% {2} r13 = JOIN r12 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 1 OUTPUT Rhs.1, Lhs.0
24917 ~1% {2} r14 = JOIN r13 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
2781 ~0% {2} r15 = JOIN r14 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT false, Lhs.1
2817 ~0% {1} r16 = JOIN r11 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT Lhs.1
2817 ~0% {2} r17 = JOIN r16 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 1 OUTPUT Rhs.1, Lhs.0
6922 ~0% {2} r18 = JOIN r17 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
2765 ~1% {2} r19 = JOIN r18 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT true, Lhs.1
5546 ~0% {2} r20 = r15 UNION r19
27602 ~0% {2} r21 = r10 UNION r20
53871 ~0% {2} r22 = r2 UNION r21
return r22
```
|
2023-04-17 09:28:31 +01:00 |
|
Mathias Vorreiter Pedersen
|
7eee589304
|
Merge pull request #12569 from andersfugmann/andersfugmann/use_after_free
C++: Implement use-after-free and double-free queries using the new IR use-use dataflow
|
2023-04-17 08:01:58 +01:00 |
|
Geoffrey White
|
ba982e2f85
|
Merge pull request #12752 from gsingh93/buffer-access-array-expr
C++: Consider ArrayExpr with non-constant size expressions as a BufferAccess
|
2023-04-14 15:31:20 +01:00 |
|
Jeroen Ketema
|
0c7346707b
|
Fix minor issues with change notes
|
2023-04-14 15:37:04 +02:00 |
|
github-actions[bot]
|
075d063370
|
Release preparation for version 2.13.0
|
2023-04-14 13:31:30 +00:00 |
|
Alex Eyers-Taylor
|
c6a482819a
|
Bump all qlpacks major versions
|
2023-04-13 19:15:27 +01:00 |
|
Robert Marsh
|
fddbffee6f
|
C++: autoformat
|
2023-04-13 11:13:27 -04:00 |
|
Robert Marsh
|
316cb95547
|
C++: respond to overflow PR comments
|
2023-04-13 10:03:55 -04:00 |
|
Alex Ford
|
8c46bfd051
|
Merge pull request #12816 from github/rc/3.9
Merge `rc/3.9` into `main`
|
2023-04-13 12:35:41 +01:00 |
|