Geoffrey White
843b85c0e6
CPP: Test PureVirtualFunction.
2019-08-08 15:02:55 +01:00
Geoffrey White
44ea685bf3
CPP: Simplify the VirtualFunctions test.
2019-08-08 15:02:55 +01:00
Geoffrey White
be25338e44
CPP: QLDoc Function.qll.
2019-08-08 15:02:55 +01:00
Jonas Jensen
2c6dbacd2b
C++: Tidy up DataFlowUtil.qll
2019-08-08 14:05:03 +02:00
Jonas Jensen
0a13d7a337
C++: PartialDefNode -> PartialDefinitionNode
2019-08-08 14:05:03 +02:00
Jonas Jensen
98d6f3cada
C++: Unify partial def and def-by-ref
...
This removes a lot of flow steps, but it all seems to be flow that was
present twice: both exiting a `PartialDefNode` and a
`DefinitionByReferenceNode`. All `DefinitionByReferenceNode`s are now
`PartialDefNode`s.
2019-08-08 14:05:03 +02:00
Jonas Jensen
5370e7d693
C++: Remove TThisVar
...
There's no need to model `this` as a variable because it's never
reassigned.
2019-08-08 14:05:03 +02:00
Jonas Jensen
6a3f5efc1b
C++: Accept AST field flow test output
2019-08-08 14:05:03 +02:00
Jonas Jensen
861964337c
C++: Undo autoformat of FlowVar.qll
...
The formatting changes were good, but were tangled in with other
changes, making it hard to review this file.
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
79d75d7d18
Add extra test cases
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
835e495e7c
Remove unused args
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
b1632587bc
Use more meaningful name
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
6d4d131ad4
C++ field flow: Add test.
...
This is a fairly direct translation of the Java field flow test to
C++. Not all the `// flow` annotations are currently accurate.
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
dccc0f4db1
Add handling of post-constructor-call nodes
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
9e6c240ee2
Override getFunction on PostUpdateNodes
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
abcaeded23
Only split BBs for var-defining partial-defs
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
46e6b587bc
Exclude partial defs from ordinary SSA handling
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
5fbe982084
Add missing getType override
2019-08-08 14:05:03 +02:00
Pavel Avgustinov
1b9a2d3d87
Reduce partial definition flow edge redundancy
2019-08-08 14:05:02 +02:00
Pavel Avgustinov
bb8eb235e0
Handle constructor call qualifiers
2019-08-08 14:05:02 +02:00
Pavel Avgustinov
66164eb06f
Propagate data flow through NewExprs
2019-08-08 14:05:02 +02:00
Pavel Avgustinov
623652247d
Introduce partial-definition nodes
2019-08-08 14:05:02 +02:00
Pavel Avgustinov
15b56d93bd
No implicit instances for constructor call
2019-08-08 14:05:02 +02:00
Pavel Avgustinov
04454ef184
Begin extending dataflow node model for field flow (and other stuff)
2019-08-08 14:05:02 +02:00
Jonas Jensen
3b2ef44195
Merge pull request #1710 from geoffw0/oddsandends
...
CPP: Delete invalid URL
2019-08-07 15:02:37 +02:00
Geoffrey White
d1093cae2e
CPP: Delete invalid URL and strange comment.
2019-08-07 09:25:36 +01:00
yh-semmle
033879f5a6
Merge pull request #1639 from aschackmull/java/in-out-barriers
...
Java/C++/C# DataFlow: Add support for in/out barriers on sources and sinks.
2019-08-07 01:07:19 -04:00
Jonas Jensen
077f372f98
Merge pull request #1570 from geoffw0/qldoceg
...
CPP: Add syntax examples to QLDoc in Class.qll.
2019-08-06 21:17:45 +02:00
zlaski-semmle
3ad0bcf3de
Merge pull request #1701 from Semmle/geoffw0-patch-1
...
CPP: QLDoc tidy up Declaration.qll
2019-08-06 11:53:20 -07:00
Geoffrey White
bbe7691a3d
CPP: Fix indentation.
2019-08-06 17:56:24 +01:00
Geoffrey White
42bf1be0fd
CPP: 'if constexpr' test cases.
2019-08-06 17:56:24 +01:00
Geoffrey White
6a5ac08578
CPP: Add c++17 flag to the test.
2019-08-06 17:56:24 +01:00
Geoffrey White
3550fc7137
CPP: Merge the two unions tests.
2019-08-06 16:05:10 +01:00
Geoffrey White
4ed559ee0b
CPP: Extend the unions test.
2019-08-06 16:00:35 +01:00
Geoffrey White
cf20647765
CPP: Extend the structs test.
2019-08-06 15:52:25 +01:00
Geoffrey White
2466299df5
CPP: Improve the Enums3 test.
2019-08-06 15:38:10 +01:00
Geoffrey White
064b8773a4
CPP: Test LocalEnum and NestedEnum.
2019-08-06 15:38:10 +01:00
Geoffrey White
33d38ac090
CPP: QLDoc Enum.qll.
2019-08-06 15:38:10 +01:00
Geoffrey White
5d4fba4446
CPP: QLDoc examples in Struct.qll and Union.qll.
2019-08-06 15:36:38 +01:00
Nick Rolfe
257daddf3b
Merge pull request #1702 from mgrettondann/cpp-add-thread_local-support-external
...
C++: add thread_local support
2019-08-06 14:51:27 +01:00
Jonas Jensen
b4b940ae50
C++ IR: Remove unused predicate
2019-08-06 14:50:59 +02:00
Jonas Jensen
aab6c072c7
C++ IR: Remove fields from InstructionTag
...
Like array indexes were seemingly not needed in instruction tags, the
same appears to apply to fields.
2019-08-06 14:50:59 +02:00
Jonas Jensen
d378da33e8
C++ IR: Fix performance of large array value init
...
There were two problems here.
1. The inline predicates `isInitialized` and `isValueInitialized` on
`ArrayAggregateLiteral` caused their callers to materialize every
`int` that was a valid index into the array. This was slow on huge
value-initialized arrays.
2. The `isInitialized` predicate was used in the `TInstructionTag` IPA
type, creating a numbered tuple for each integer in it. This seemed
to be entirely unnecessary since the `TranslatedElement`s using those
tags were already indexed appropriately.
2019-08-06 14:50:57 +02:00
Jonas Jensen
f160447c20
C++: Update test results to latest master
2019-08-06 14:42:47 +02:00
Geoffrey White
73736675ce
CPP: Bits and bobs.
2019-08-06 13:32:04 +01:00
Geoffrey White
ab823f45fc
CPP: class, struct or union where appropriate.
2019-08-06 13:32:04 +01:00
Geoffrey White
8d22eb87f0
CPP: Improvements to qldoc.
2019-08-06 13:29:42 +01:00
Geoffrey White
4dd1267d6d
CPP: Bracket consistency.
2019-08-06 13:29:42 +01:00
Geoffrey White
cf1869cfaa
CPP: Indentation.
2019-08-06 13:29:42 +01:00
Geoffrey White
0029a33ee6
CPP: Deprecate Interface and remove the test.
2019-08-06 13:29:42 +01:00