Mathias Vorreiter Pedersen
6f4107ff23
Dataflow: Replace a 'noinline' pragma with a 'nomagic' pragma.
2021-11-02 11:37:40 +00:00
Mathias Vorreiter Pedersen
092beb8b73
C++: Don't count write operations as uses.
2021-11-02 10:59:34 +00:00
Geoffrey White
c1de4165a9
Update cpp/ql/lib/semmle/code/cpp/commons/NullTermination.qll
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2021-11-02 10:51:35 +00:00
CodeQL CI
5d62aa5b29
Merge pull request #6994 from erik-krogh/redundant-cast
...
Approved by RasmusWL, aschackmull, esbena, geoffw0, hvitved, nickrolfe
2021-11-02 03:45:48 -07:00
Geoffrey White
dec7f93097
C++: Eliminate mutual recursion.
2021-11-01 17:32:38 +00:00
Geoffrey White
d6a714cf69
C++: Improve comments.
2021-11-01 17:32:37 +00:00
Jonas Jensen
93dfee866a
C++: Add isFromSystemMacroDefinition predicate
2021-11-01 09:17:49 +01:00
Mathias Vorreiter Pedersen
d34e731f1d
C++: Add a small QLDoc novel above the IPA type for 'TIRDataFlowNode'.
2021-10-30 11:29:07 +01:00
Mathias Vorreiter Pedersen
d624259eab
C++: Add QLDoc to 'flowOutOfAddressStep'.
2021-10-30 10:46:39 +01:00
Mathias Vorreiter Pedersen
a75f195df3
C++: Several readability fixes:
...
1. Added lots of QLDoc explanation about the role of StoreNodeOperand.
2. Renamed '{StoreNode,ReadNode}.getAPredecessor' to 'getInner' and
'{StoreNode,ReadNode}.getASuccessor' to 'getOuter'.
3. Be more explicit about which type of 'StoreNode' is used in various
places.
2021-10-30 10:24:06 +01:00
Mathias Vorreiter Pedersen
f334201fce
Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
...
Co-authored-by: Jonas Jensen <jbj@github.com >
2021-10-30 10:04:17 +01:00
Mathias Vorreiter Pedersen
cb4f10c609
C++: Move the union field check to the IPA branch of 'TFieldContent'.
2021-10-30 10:04:17 +01:00
Mathias Vorreiter Pedersen
8a569da370
C++: Fix comments.
2021-10-29 14:05:34 +01:00
Erik Krogh Kristensen
d36c66cfca
remove redundant inline casts in arguments where the type is inferred by the call target
2021-10-29 14:37:56 +02:00
Anders Schack-Mulligen
3a1836c9f6
Merge pull request #7000 from aschackmull/dataflow/interface-refactor
...
Dataflow: Refactor public references to DataFlowCallable
2021-10-29 12:21:13 +02:00
Anders Schack-Mulligen
5951ae79b9
Dataflow: Add language specific predicates.
2021-10-29 11:11:35 +02:00
Anders Schack-Mulligen
00df6798b1
Dataflow: Sync
2021-10-29 11:00:23 +02:00
Mathias Vorreiter Pedersen
490156d7db
C++: Remove the 'isIndirection' predicate on 'SourceVariable' and move the rootdef of 'getIRVariable' into the two subclasses.
2021-10-28 17:26:28 +01:00
Mathias Vorreiter Pedersen
05900cda87
C++: Rename 'Ssa' to 'SsaInternals' and move definitions from 'SSaImplSpecific' to 'SsaInternals'. Now we can avoid cyclic imports.
2021-10-28 17:10:48 +01:00
Erik Krogh Kristensen
15c90adec5
remove redundant cast where the type is enforced by an equality comparison
2021-10-28 18:08:20 +02:00
Erik Krogh Kristensen
e75448ebb0
remove redundant inline casts
2021-10-28 16:35:53 +02:00
Mathias Vorreiter Pedersen
675e284c0e
C++: A 'LoadInstruction' in a store chain always sets 'certain = false'.
2021-10-28 14:52:57 +01:00
Mathias Vorreiter Pedersen
ee2541c3bc
C++: Fix QLDoc on 'getDestinationAddress'.
2021-10-28 14:12:22 +01:00
Mathias Vorreiter Pedersen
cde80ccf83
Replace 'hasLocationInfo' with 'getLocation'.
2021-10-28 14:09:26 +01:00
Mathias Vorreiter Pedersen
387c96d1e2
Rename 'SourceVariable.getVariable' to 'SourceVariable.getIRVariable' and replace 'Def.getVariable' to 'Def.getSourceVariable'.
2021-10-28 14:00:50 +01:00
Mathias Vorreiter Pedersen
12e0185b0d
C++: Sync identical files.
2021-10-28 12:36:36 +01:00
Mathias Vorreiter Pedersen
8135dcefdd
Merge branch 'main' into use-shared-ssa-in-ir-dataflow
2021-10-28 12:36:25 +01:00
Mathias Vorreiter Pedersen
521d863429
C++: Autoformat.
2021-10-28 12:35:01 +01:00
Mathias Vorreiter Pedersen
2547a8d746
C++: Fix join orders in 'DataFlowDispatch.qll' and Ssa.qll.
2021-10-28 12:35:01 +01:00
Mathias Vorreiter Pedersen
21a1ee7758
C++: Add annoying case in SSA.qll related to 'NewExpr' and accept test changes.
2021-10-28 12:35:01 +01:00
Mathias Vorreiter Pedersen
5dbaea8b52
C++: Add a special dataflow step from InitializeIndirection instructions.
2021-10-28 12:35:01 +01:00
Mathias Vorreiter Pedersen
b1ea00fa85
C++: Remove the taintflow edges that gives performance problems.
2021-10-28 12:35:01 +01:00
Mathias Vorreiter Pedersen
710d0cfc3d
C++: Since we now no longer have flow from exact memory operands to LoadInstructions, we no longer have flow from PhiInstructions to LoadInstructions. We could allow flow in this particular case, but we might as well use the shared SSA library's phi edges.
2021-10-28 12:35:00 +01:00
Mathias Vorreiter Pedersen
8caff41138
C++: Throw away most of the usage of IR-computed def-use information. Instead, we rely on the shared SSA library's use-use edges.
2021-10-28 12:35:00 +01:00
Mathias Vorreiter Pedersen
3a488574e5
C++: Rewrite the PartialDefinitionNode classes to match the new StoreNodes.
2021-10-28 12:35:00 +01:00
Mathias Vorreiter Pedersen
8bef79502f
C++: Similarly to the previous commit, we throw away the old memory-edges based way of doing read steps. Instead, we use the shared SSA library to transfer flow into a new ReadNode IPA branch, perform the necessary read steps, and then use the shared SSA library to transfer flow out of the ReadNode again.
2021-10-28 12:35:00 +01:00
Mathias Vorreiter Pedersen
5ebefe2d30
C++: Throw away the old way of doing store steps using memory edges. Instead, we introduce a StoreNode IPA branch that does store steps and instead use the shared SSA library to transfer flow into these nodes before a store step, and out of them following a sequence of store steps.
2021-10-28 12:35:00 +01:00
Mathias Vorreiter Pedersen
1842fed7a2
C++: Add shared SSA library and instantiate it with the IR.
2021-10-28 10:52:09 +01:00
Mathias Vorreiter Pedersen
13ce2569d7
C++/C#: Sync identical IR files·
2021-10-28 10:52:00 +01:00
Mathias Vorreiter Pedersen
bccd4e9e93
C++: Add 'getReturnAddress' and 'getReturnAddressOperand' predicates to 'ReturnValueInstruction'.
2021-10-28 10:51:49 +01:00
Anders Schack-Mulligen
699630af54
Dataflow: Sync.
2021-10-27 13:57:44 +02:00
Anders Schack-Mulligen
034c7f3538
Dataflow: Sync.
2021-10-27 13:57:44 +02:00
Geoffrey White
9009dac9ea
Merge branch 'main' into nullterm2
2021-10-21 13:14:15 +01:00
Geoffrey White
0e5cfd3469
C++: Rename the predicate and make it private.
2021-10-20 16:12:04 +01:00
Geoffrey White
f17c06a37f
C++: Fix mistake in previous commit.
2021-10-20 15:40:14 +01:00
Tom Hvitved
0bf5238f39
Update QL doc for allowParameterReturnInSelf
2021-10-20 12:08:58 +02:00
Tom Hvitved
dd138b0429
Address review comments
2021-10-20 12:08:58 +02:00
Tom Hvitved
a1511e13d8
Data flow: Sync files
2021-10-20 12:08:57 +02:00
Geoffrey White
f7bd74ea59
C++: Prototype nodeBefore predicate.
2021-10-19 20:08:55 +01:00
Geoffrey White
57fe4b9a31
C++: Also fix variableMustBeNullTerminated.
2021-10-19 18:06:11 +01:00