Mathias Vorreiter Pedersen
a0bfbda51c
C++: Improve performance by not calling getDef, but instead refer to isDefinitionInexact. This gives roughly the same tuple numbers we had with only instruction nodes.
2020-06-25 13:37:14 +02:00
Mathias Vorreiter Pedersen
8c6753a3cc
C++: Accept consistency tests.
2020-06-24 21:13:38 +02:00
Mathias Vorreiter Pedersen
5190c26635
C++: Accept tests.
2020-06-24 18:28:41 +02:00
Mathias Vorreiter Pedersen
7530dc2132
C++: Hide operand nodes from path explanations to make the review diff smaller.
2020-06-24 18:28:23 +02:00
Mathias Vorreiter Pedersen
5aa1b13136
C++: Make the pre update node for ExplicitFieldStoreQualifierNode an operand node. This fixes the IR dataflow consistency errors.
2020-06-24 18:27:53 +02:00
Mathias Vorreiter Pedersen
470ee0059d
C++: Alternate dataflow between operands and instructions
2020-06-24 18:27:12 +02:00
Mathias Vorreiter Pedersen
d7a9d3d8bc
C++: Introduce operand dataflow node
2020-06-24 18:26:17 +02:00
Anders Schack-Mulligen
941177ee25
Merge pull request #3762 from hvitved/dataflow/clear-contents
...
Data flow: Model field clearing
2020-06-24 10:19:50 +02:00
Geoffrey White
afcc6ac712
Merge pull request #3766 from rdmarsh2/rdmarsh/cpp/add-qldoc-3
...
C++: Add QLDocs for Initializer.qll-Macro.qll and model classes
2020-06-24 07:31:48 +01:00
Mathias Vorreiter Pedersen
30d9c6b9e4
Merge pull request #3776 from geoffw0/qldoc
...
C++: QLDoc ObjectiveC.qll, BufferWrite.qll, FileWrite.qll, OutputWrite.qll
2020-06-23 22:23:03 +02:00
Robert Marsh
edaa43ab0b
C++: respond to PR comments on qldoc
2020-06-23 09:23:08 -07:00
Geoffrey White
fbaf398e7a
C++: QLDoc FileWrite and OutputWrite.
2020-06-23 16:57:22 +01:00
Geoffrey White
e01f050db8
C++: QLDoc BufferWrite.qll.
2020-06-23 16:29:00 +01:00
Geoffrey White
dea9a13e44
C++: QLDoc ObjectiveC.qll (deprecated).
2020-06-23 16:28:51 +01:00
Tom Hvitved
a3e7fd60f2
Data flow: Enable syntax highlighting in QLDoc snippets
2020-06-23 16:54:34 +02:00
Tom Hvitved
ff751ac0f8
Data flow: Sync files
2020-06-23 10:55:12 +02:00
Tom Hvitved
83050d96f8
C++: Stub implementations for clearsContent()
2020-06-23 10:55:12 +02:00
Tom Hvitved
c057e82efa
Data flow: Sync files
2020-06-23 10:55:11 +02:00
Jonas Jensen
3747bd98f3
Merge pull request #3694 from geoffw0/models
...
C++: Extend the GetsFunction and SystemFunction models.
2020-06-23 10:15:32 +02:00
Mathias Vorreiter Pedersen
55ce5ce47a
Merge pull request #3754 from jbj/revert-flat-structs
...
C++: Revert #3419 to fix OpenJDK performance
2020-06-23 08:58:08 +02:00
Robert Marsh
c1eb712841
C++: QLDoc for data and taint models
2020-06-22 17:25:55 -07:00
Robert Marsh
231b85cb11
C++: File-level QLDoc for publicly imported models
2020-06-22 11:43:43 -07:00
Geoffrey White
466f36c7e1
C++: Autoformat.
2020-06-22 16:04:32 +01:00
Jonas Jensen
5a5df4de26
Revert "Merge pull request #3419 from MathiasVP/flat-structs"
...
There was unfortunately a semantic merge conflict between #3419 and
#3587 that caused a performance regression on (at least) OpenJDK.
This reverts commit 982fb38807 , reversing
changes made to b841cacb83 .
2020-06-22 14:09:06 +02:00
Tom Hvitved
72e6c9c2b1
Data flow: Use accessPathLimit() in partial flow as well
2020-06-22 10:08:51 +02:00
Pavel Avgustinov
00f1e57d0c
Update cpp-security-extended.qls
2020-06-19 20:16:24 +01:00
Jonas Jensen
81d8dc15cd
Merge pull request #3693 from geoffw0/stringtest
...
C++: Add tests of char* -> std::string -> char* conversions.
2020-06-19 21:12:33 +02:00
Jonas Jensen
09d7ed092b
Merge pull request #3612 from dbartol/github/codeql-c-analysis-team/69_union
...
C++: Share `TInstruction` across IR stages
2020-06-19 16:03:11 +02:00
Anders Schack-Mulligen
8107fbadc2
Merge pull request #3456 from hvitved/dataflow/precise-field-types
...
Data flow: Track precise types during field flow
2020-06-19 11:50:10 +02:00
Geoffrey White
35487ff109
Merge branch 'master' into stringtest
2020-06-17 19:00:26 +01:00
Geoffrey White
174fdadbf5
Merge branch 'master' into stringtest
2020-06-17 18:24:30 +01:00
Geoffrey White
03c6d7a7e5
Merge pull request #3654 from jbj/controlsBlock-perf
...
C++: Speed up IRGuardCondition::controlsBlock
2020-06-17 17:53:10 +01:00
Anders Schack-Mulligen
74eab3cbc0
Dataflow: Fix qltest.
2020-06-17 17:23:35 +02:00
Anders Schack-Mulligen
cedfaf6aaf
Dataflow: autoformat
2020-06-17 17:09:55 +02:00
Anders Schack-Mulligen
543ab71dfe
Dataflow: minor review fixes.
2020-06-17 17:03:22 +02:00
Dave Bartolomeo
687d6d2643
C++: Replace TRawInstruction() calls
...
Replace most direct calls to `TRawInstruction()` with calls to `getInstructionTranslatedElement()` and `getInstructionTag()`, matching existing practice. One tiny RA diff in an inconsequential join order in `getInstructionVariable`.
2020-06-17 10:52:32 -04:00
Dave Bartolomeo
c1016743a5
C++: Remove instructionOrigin()
...
This noopt predicate is no longer necessary. It's equivalent to `instruction = TRawInstruction(element, tag)`, which is already materialized and has a more favorable column order anyway.
2020-06-17 10:25:59 -04:00
Dave Bartolomeo
e85cc0b0c6
C++: Stop caching raw IR construction predicates
...
These predicates are only used within the new single IR stage, so there's no need to cache them beyond that. RA diffs are trivial. Where previously many of the predicate on `Instruction` were inline wrappers around cached predicates from `IRConstruction`, now the predicates from `IRConstruction` get inlined into the `Instruction` predicates, and the `Instruction` predicates get materialized. The net amount of work is the same, but now it's not getting cached unnecessarily.
2020-06-17 09:47:48 -04:00
Anders Schack-Mulligen
d28b5ace63
Dataflow: Sync.
2020-06-17 15:40:48 +02:00
Mathias Vorreiter Pedersen
01abaf373a
Merge pull request #3728 from geoffw0/memberfunctions
...
C++: Split MemberFunction.qll from Function.qll.
2020-06-17 14:54:33 +02:00
Geoffrey White
7edaade175
C++: Improve QLDoc.
2020-06-17 12:11:42 +01:00
Geoffrey White
0a9ec70c31
C++: Autoformat.
2020-06-17 11:54:50 +01:00
Geoffrey White
f3e24963cb
C++: Update QLDoc.
2020-06-17 10:27:34 +01:00
Dave Bartolomeo
8e977dc6bf
C++/C#: Move overrides of IRType::getByteSize() into leaf classes
...
See https://github.com/github/codeql/pull/2272 . I've added code comments in all of the places that future me will be tempted to hoist these overrides.
2020-06-16 16:48:42 -04:00
Dave Bartolomeo
24c3110989
Merge from master
2020-06-16 16:37:38 -04:00
Robert Marsh
ef940e815f
C++: Add comment for false positives in swap tests
2020-06-16 11:46:14 -07:00
Robert Marsh
0c99b3644c
C++: remove false negative comments in swap tests
2020-06-16 11:33:26 -07:00
Robert Marsh
1c9b6f0a48
Merge branch 'master' into ir-this-parameter-2
...
Accept test changes - dataflow changes are all positive
2020-06-16 11:28:49 -07:00
Geoffrey White
3d75d287a9
C++: Split MemberFunction.qll from Function.qll.
2020-06-16 17:40:46 +01:00
Robert Marsh
ab327b989d
Merge pull request #3713 from MathiasVP/flow-diff-test
...
C++: Add test for differences between AST and IR field flow
2020-06-16 09:09:46 -07:00