Robert Marsh
2d3a742b7f
C++: autoformat and accept test changes
2020-02-06 13:41:00 -08:00
Robert Marsh
692207472a
Merge branch 'master' into rdmarsh/cpp/ir-flow-through-outparams
2020-02-06 11:42:30 -08:00
Tom Hvitved
b3af3ad12f
Data flow: Fix bad join order in getReturnPosition()
...
Joining on the enclosing callable before the kind is crucial, as witnessed by this pipeline:
```
[2020-02-06 17:58:21] (1086s) Starting to evaluate predicate DataFlowImplCommon::getReturnPosition#ff/2@83c546
[2020-02-06 18:53:16] (4382s) Tuple counts for DataFlowImplCommon::getReturnPosition#ff:
385478 ~1% {3} r1 = SCAN DataFlowImplCommon::Cached::TReturnPosition0#fff@staged_ext AS I OUTPUT I.<2>, I.<0>, I.<1>
385478 ~2% {3} r2 = JOIN r1 WITH DataFlowImplCommon::Cached::TReturnPosition0#fff_2#join_rhs AS R ON FIRST 1 OUTPUT r1.<2>, r1.<1>, r1.<0>
58638116860 ~0% {3} r3 = JOIN r2 WITH DataFlowImplCommon::ReturnNodeExt::getKind_dispred#ff_10#join_rhs AS R ON FIRST 1 OUTPUT R.<1>, r2.<1>, r2.<2>
914049 ~0% {2} r4 = JOIN r3 WITH DataFlowImplCommon::returnNodeGetEnclosingCallable#ff AS R ON FIRST 2 OUTPUT r3.<0>, r3.<2>
return r4
```
2020-02-06 19:06:40 +01:00
Mathias Vorreiter Pedersen
538c2b205d
C++: Accept output
2020-02-06 18:44:08 +01:00
Mathias Vorreiter Pedersen
f02513e376
C++: Exclude UnknownLocation results from getLocation if there is a location that's known
2020-02-06 15:53:22 +01:00
Mathias Vorreiter Pedersen
23ca363b87
C++: Formatting
2020-02-06 15:53:22 +01:00
Mathias Vorreiter Pedersen
98969e3bf9
C++: Accepted ir_gvn output after toString change
2020-02-06 15:53:22 +01:00
Mathias Vorreiter Pedersen
0d181a7101
C++: Add tests and accept output
2020-02-06 15:48:08 +01:00
Mathias Vorreiter Pedersen
69e085dda7
C++: Add getDebugString predicate and use it in ValueNumberPropertyProvider
2020-02-06 15:43:57 +01:00
Mathias Vorreiter Pedersen
ef89e3bdb5
C++: Added charpred to ensure that only instructions that have a source representation have a GVN
2020-02-06 15:43:57 +01:00
Mathias Vorreiter Pedersen
63f1d3ded7
C++: Replace rank[1] with min
2020-02-06 15:43:57 +01:00
Mathias Vorreiter Pedersen
2303dac0b7
C++: Implemented getKind to new GVN class and added predicates for obtaining expressions from a GVN
2020-02-06 15:43:57 +01:00
Robert Marsh
2f91778e7e
C++: add IR-based wrapper for value numbering
2020-02-06 15:35:20 +01:00
Robert Marsh
ffaaed0550
C++: separate IR ValueNumber newtype and interface
2020-02-06 15:35:20 +01:00
Jonas Jensen
4997aa7428
Merge pull request #2772 from MathiasVP/more-gvn-loads
...
C++: Better value numbering support for loading fields in IR
2020-02-06 14:15:27 +01:00
Jonas Jensen
2e883ab4b2
Merge pull request #2760 from geoffw0/defaulttainttest3
...
C++: Emulate old security library's use of predictable more accurately.
2020-02-06 13:47:27 +01:00
Mathias Vorreiter Pedersen
19e1d82708
Merge pull request #2686 from jbj/ir-crement-load
...
C++: Move the LoadInstruction from `++` to `e` in `e++`.
2020-02-06 11:53:55 +01:00
Mathias Vorreiter Pedersen
aaa6233a99
C++/C#: Sync identical files
2020-02-06 11:24:07 +01:00
Mathias Vorreiter Pedersen
527181bb6f
C++: Rename CongruentCopyInstructionTotal to LoadTotalOverlapInstruction and extend LoadInstruction instead of CopyInstruction
2020-02-06 11:23:42 +01:00
Geoffrey White
2dfeafac30
C++: Interaction with another PR.
2020-02-06 10:21:55 +00:00
Geoffrey White
851c1134f3
C++: Add 'strlen' back.
2020-02-06 10:17:37 +00:00
Geoffrey White
860d0aa42f
C++: Remove single argument functions.
2020-02-06 10:17:37 +00:00
Geoffrey White
539d6716f5
C++: Remove commented entries.
2020-02-06 10:17:37 +00:00
Geoffrey White
d54d7e8410
C++: Post-merge fix.
2020-02-06 10:17:37 +00:00
Geoffrey White
2fddb09a30
C++: New autoformat.
2020-02-06 10:17:37 +00:00
Geoffrey White
95c77ca3c6
C++: Update comment.
2020-02-06 10:17:37 +00:00
Geoffrey White
9c05ffeb3a
C++: Emulate old security library's use of predictable more accurately.
2020-02-06 10:17:37 +00:00
Mathias Vorreiter Pedersen
f4bbdee6c2
Merge pull request #2745 from Cornelius-Riemenschneider/cpp-range-analysis
...
C++: Fix bug in range analysis.
2020-02-06 10:10:06 +01:00
Mathias Vorreiter Pedersen
ba395cf11a
C++: Update test annotations and accept output
2020-02-06 09:26:33 +01:00
Mathias Vorreiter Pedersen
cfcf087d3c
C++: Add comment explaining buggy value number
2020-02-06 09:26:33 +01:00
Mathias Vorreiter Pedersen
4f2775012a
C++/C#: Sync identical files
2020-02-06 09:26:33 +01:00
Mathias Vorreiter Pedersen
5e5bd92cba
C++: Accept output
2020-02-06 09:26:33 +01:00
Mathias Vorreiter Pedersen
54f0b4a099
C++: Add more support for load instructions
2020-02-06 09:21:42 +01:00
Mathias Vorreiter Pedersen
687dcb7ad1
C++: Add testcase demonstrating unexpectly different value numbers
2020-02-06 09:21:42 +01:00
Jonas Jensen
91927c9039
Merge remote-tracking branch 'upstream/master' into ir-crement-load
...
Conflicts:
cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected
cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected
cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected
cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected
2020-02-06 08:37:09 +01:00
Jonas Jensen
c0417ac161
Merge pull request #2740 from dbartol/dbartol/InitializeNonLocal
...
C++: Prevent `AliasedVirtualVariable` from overlapping string literals
2020-02-06 08:28:01 +01:00
Dave Bartolomeo
e06f468b59
C++: Fix test expectations after EDG update
2020-02-05 14:34:29 -07:00
Cornelius Riemenschneider
7f7cc7bece
Include test output for the fixed test.
2020-02-05 22:33:26 +01:00
Cornelius Riemenschneider
c941348fea
Fix test so it actually shows up in the test output.
2020-02-05 22:29:44 +01:00
Dave Bartolomeo
c53f80175f
Merge pull request #2750 from Cornelius-Riemenschneider/cpp-range-analysis-casts
...
C++: Support implicit casts better in range analysis
2020-02-05 13:59:09 -07:00
Jonas Jensen
81b1bd4177
Merge pull request #2769 from aschackmull/java/perf-regression
...
Java: Improve performance.
2020-02-05 20:15:18 +01:00
Dave Bartolomeo
4c31c038b8
Merge from master
2020-02-05 11:23:14 -07:00
Dave Bartolomeo
4362bdb626
C++: Accept new test output
2020-02-05 10:56:40 -07:00
Dave Bartolomeo
1b6de4b32f
C++: Fix formatting
2020-02-05 10:55:49 -07:00
Jonas Jensen
a0e2d59c01
C++: Add tests for global-var support
2020-02-05 16:31:13 +01:00
Jonas Jensen
f40acc19d2
C++: Use VariableNode in DefaultTaintTracking
2020-02-05 16:29:13 +01:00
Jonas Jensen
6d081a997a
C++: Add VariableNode
2020-02-05 16:29:13 +01:00
Jonas Jensen
73e34f1447
C++: Refactor to separate out InstructionNode
...
This commit prepares the IR data-flow library for having more than one
type of data-flow node.
2020-02-05 16:29:13 +01:00
Jonas Jensen
cdfcee3ae9
Merge remote-tracking branch 'upstream/master' into ir-crement-load
...
Conflicts:
cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected
cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected
2020-02-05 16:13:21 +01:00
Anders Schack-Mulligen
07482abed7
Java/C++/C#: Sync.
2020-02-05 15:17:20 +01:00