Robert Marsh
95ed5465de
C++: improve handling of function arguments in DTT
2020-11-09 13:02:06 -08:00
Mathias Vorreiter Pedersen
3c2fb5a93f
Merge branch 'main' into interleave-op-instr-field-flow
2020-11-09 09:58:19 +01:00
Robert Marsh
2f204869e7
Merge pull request #4604 from criemen/ir-block-sort-order
...
C++, C# IR: Stabilize sort order for basic blocks.
2020-11-04 18:22:23 -05:00
Cornelius Riemenschneider
78d885ee7d
C++: Accept test output.
2020-11-04 16:45:07 +01:00
Cornelius Riemenschneider
e7e5754270
C++: Add taint model for std::vector::emplace/_back.
2020-11-04 16:20:01 +01:00
Cornelius Riemenschneider
62a02cde73
C++: Add test to show missing taint steps for std::vector::emplace/_back
2020-11-04 16:07:15 +01:00
Cornelius Riemenschneider
081ab1e2bb
C++: Add std::vector::emplace/_back to our STL model.
2020-11-04 16:07:08 +01:00
Dave Bartolomeo
4cc9110dbd
Fix test expectation
2020-11-03 13:39:33 -05:00
Dave Bartolomeo
f0b9794907
Merge remote-tracking branch 'upstream/main' into work
2020-11-03 11:33:44 -05:00
Dave Bartolomeo
0d1fbd1bdc
Fix annotations
2020-11-02 18:03:40 -05:00
Robert Marsh
f917cf826f
C++: accept test output
2020-11-02 13:59:23 -08:00
Mathias Vorreiter Pedersen
ed9ad8b5e3
Merge branch 'main' into better-syntax-for-false-positives-and-negatives-inline-expectation
2020-10-31 16:52:16 +01:00
Dave Bartolomeo
69dee154f3
Fix PR feedback
2020-10-31 09:03:51 -04:00
Dave Bartolomeo
be180aac25
Fixup after merge
2020-10-30 12:52:58 -04:00
Dave Bartolomeo
ec398b2a67
Merge remote-tracking branch 'upstream/main' into work
2020-10-30 12:36:33 -04:00
Dave Bartolomeo
42373417e2
Merge from main
2020-10-30 12:02:56 -04:00
Mathias Vorreiter Pedersen
177f94368e
C++: Respond to review comments and accept test changes.
2020-10-30 15:59:39 +01:00
Cornelius Riemenschneider
84fe7ba199
C++: Add support for StmtExpr to Print AST.
2020-10-30 15:53:54 +01:00
Cornelius Riemenschneider
d3631d8f2e
Merge pull request #4562 from criemen/printast-labels
...
C++: Change PrintAST to provide the predicates that can be used to traverse the AST.
2020-10-30 15:48:46 +01:00
Cornelius Riemenschneider
ab42ddb0dc
C++: Adjust code for the conversions PR, provide correct childIndexes for the new nodes.
2020-10-30 12:48:53 +01:00
Jonas Jensen
ba41417d61
Merge pull request #4553 from geoffw0/samateregtests
...
C++: Additional pointer tests for DefaultTaintTracking.
2020-10-30 10:02:11 +01:00
Mathias Vorreiter Pedersen
b5234f9245
C++: Update IR inline-expectation tests
2020-10-29 19:11:54 +01:00
Cornelius Riemenschneider
4276d1f3e5
C++: Add missing comment and update test results.
2020-10-29 14:49:06 +01:00
Cornelius Riemenschneider
8c925a20a7
C++: Provide the predicates that can be used to traverse the AST as metadata.
2020-10-29 14:48:47 +01:00
Jonas Jensen
fa344d216f
Merge pull request #4493 from criemen/fix-4278-printast-conversions
...
Fix C++ Print AST handling of Conversions
2020-10-29 13:48:15 +01:00
Cornelius Riemenschneider
59dd892748
C++: Address review, fix bug related to Conversions.
2020-10-29 11:40:31 +01:00
Mathias Vorreiter Pedersen
835d3fc2b7
C++: Accept tests
2020-10-29 09:27:03 +01:00
Mathias Vorreiter Pedersen
4be02a9463
C++: Use new syntax in field-flow tests
2020-10-29 08:48:37 +01:00
Dave Bartolomeo
c49e33f9cd
Fixup after merge
2020-10-28 16:59:13 -04:00
Dave Bartolomeo
7a2c59c194
Merge from main
2020-10-28 15:35:46 -04:00
Robert Marsh
7d7b0eaa7b
C++: accept test changes
...
The conflation-related changes result from aliased accesses for which a
precise Phi node is generated.
2020-10-27 09:33:28 -07:00
Geoffrey White
0b35b34288
C++: Add pointer tests.
2020-10-27 09:47:10 +00:00
Cornelius Riemenschneider
447ba205b4
C++: Move Conversions in PrintAST to the side.
2020-10-26 13:49:02 +01:00
Dave Bartolomeo
3fce971f2d
Fix taint propagation to qualifier objects and update test expectations
2020-10-23 17:48:37 -04:00
Dave Bartolomeo
86668058dc
Avoid ODR violation in test code
2020-10-23 17:45:01 -04:00
Robert Marsh
aab9797c2f
Merge branch 'main' into rdmarsh2/cpp/output-iterators-2
...
Resolve merge conflict in tests
2020-10-23 13:50:15 -07:00
Dave Bartolomeo
1e96404ee0
Revert bad changes to basic_string
2020-10-23 13:46:27 -04:00
Dave Bartolomeo
bace0dca6d
Handle more cases that require synthesizing temporary objects
...
- Parens around qualifier expressions
- Inheritance conversions involving class prvalues
2020-10-23 12:04:09 -04:00
Dave Bartolomeo
b62bda6c3a
Fix regression due to primary instructions for side effects not being computed correctly in the presence of synthetic temporary objects.
2020-10-22 12:55:30 -04:00
Geoffrey White
ceea947f5e
C++: Add another test case.
2020-10-22 12:41:23 +01:00
Geoffrey White
3cca8443f8
C++: Add memcpy(vector test.
2020-10-22 09:46:07 +01:00
Geoffrey White
227bf91626
C++: Correct test annotation.
2020-10-22 09:45:09 +01:00
Dave Bartolomeo
f7eeadadd9
Accept more diffs
2020-10-21 18:37:49 -04:00
Dave Bartolomeo
5259f86e32
Accept diff (needs further investigation, though)
2020-10-21 18:06:34 -04:00
Robert Marsh
1a365d2098
C++: remove InitializeNonLocalInstruction from IR
...
Instead, have AliasedDefinition initialize read-only nonlocal memory
2020-10-21 12:12:38 -07:00
Dave Bartolomeo
ee18db7b36
Fix IR for member accesses on prvalues
...
This fixes the IR generation for member accesses where the qualifier is a prvalue that is _not_ the load of a `TemporaryObjectExpr`. We synthesize a temporary variable during IR generation instead. It fits into the IR construction code at the same spot as `TranslatedLoad`, since it's basically the opposite of `TranslatedLoad` (prvalue->glvalue instead of vice versa). Note that array prvalues require special treatment.
This fixes some consistency errors in the `syntax-zoo`. It introduces three new ones in `dataflow-ir-consistency.expected`, but those are along the same lines as tons of existing failures.
2020-10-21 13:32:15 -04:00
Robert Marsh
413c845e97
Merge branch 'main' into rdmarsh2/cpp/output-iterators-2
...
Accept test changes for unnamed elements
2020-10-20 15:22:08 -07:00
Dave Bartolomeo
98e0ae4865
Add tests for member accesses on temporary objects
2020-10-20 17:35:12 -04:00
Dave Bartolomeo
4ba281731c
Fix IR generation for member access with a prvalue on the RHS
...
For historical reasons, the extractor marks the temporary object expression used as the qualifier of a member access as a prvalue(load), even though the current C++ standard says that the temporary object materialization results in a glvalue. Added some special handling to ignore the load for both field accesses and member function calls.
This fixes all of the consistency failures in our regular tests, and all of the related failures in `syntax-zoo` other than the ones that deal with pointers-to-member, which aren't really supported yet anyway.
2020-10-20 12:53:47 -04:00
Dave Bartolomeo
735c657326
IR consistency checks for FieldAddress and this arguments that are not actually addresses.
...
Exposes failures in existing tests. Also added a small test case for `FieldAddress` on a prvalue.
2020-10-20 10:32:28 -04:00