Geoffrey White
301c133bef
CPP: More descriptive.
2018-11-06 17:53:18 +00:00
Geoffrey White
2042c9c863
CPP: Extend the CPP-205 test (results prior to discover_walk).
2018-11-06 17:53:18 +00:00
Aditya Sharad
553c2f5d34
Merge master into next.
...
As of 2846d80f1c .
2018-11-06 11:52:51 +00:00
Geoffrey White
a3dfa3140c
CPP: Make Handlers always begin a BasicBlock.
2018-11-01 15:27:43 +00:00
Jonas Jensen
ea601b2dc0
Merge pull request #352 from dave-bartolomeo/dave/Operands
...
C++: Operands as IPA types
2018-11-01 10:12:38 +01:00
Aditya Sharad
b896899f4c
Merge master into next.
...
master as of dc3c5a684c
Version numbers resolved in favour of `next`.
C++ expected output file updated to accept test output.
2018-10-31 10:47:31 +00:00
Geoffrey White
1092cb97e5
CPP: Have reachability flow to the Handler as well as the CAtchBlock of an exception.
2018-10-30 14:27:22 +00:00
Geoffrey White
6427e9658b
CPP: Remove successor edges from non-returning functions from the control flow graph.
2018-10-30 14:25:32 +00:00
Geoffrey White
f2ba627291
CPP: Extend the c++_exceptions test.
2018-10-30 14:11:48 +00:00
Ian Lynagh
5359f5d044
C++: Accept test changes following fix_member_function_indices
2018-10-29 15:30:56 +00:00
Nick Rolfe
9a412c9202
C++: handle __uuidof(0)
2018-10-29 12:57:55 +00:00
Ian Lynagh
09959cbbfc
C++: Simplify a test's query
...
This test predated Function.getFullSignature()
2018-10-26 15:08:18 +01:00
Ian Lynagh
01d27d331e
C++: Accept test changes
2018-10-26 11:07:18 +01:00
Ian Lynagh
d6afbd8bb0
C++: Update a comment
2018-10-25 21:18:37 +01:00
Dave Bartolomeo
f278f4fa47
C++: Operands as IPA types
...
@rdmarsh2 has been working on various queries and libraries on top of the IR, and has pointed out that having to always refer to an operand of an instruction by the pair of (instruction, operandTag) makes using the IR a bit clunky. This PR adds a new `Operand` IPA type that represents an operand of an instruction. `OperandTag` still exists, but is now an internal type used only in the IR implementation.
2018-10-23 14:58:44 -07:00
Ian Lynagh
894a37ccda
C++: Accept test changes
2018-10-18 12:36:42 +01:00
Ian Lynagh
1b7961367a
C++: Enhance a test
2018-10-18 12:36:42 +01:00
Aditya Sharad
337defdf3d
Merge master into next.
2018-10-01 17:39:27 +01:00
Aditya Sharad
0882eb7bb3
Merge rc/1.18 into master.
2018-10-01 12:08:16 +01:00
Dave Bartolomeo
37091953dc
C++: Fix test expectations after rebase
2018-09-30 08:25:42 -07:00
Jonas Jensen
16004facd9
Merge pull request #197 from rdmarsh2/rdmarsh/cpp/ir-guards
...
IR-based guards library
2018-09-28 21:14:08 +02:00
Robert Marsh
93732d8b5a
C++: Combine IR guard tests into one ql file
...
This is motivated by test performance; IR compilation happens separately
for each test and takes a bit over a minute, so combining these 8 tests
saves about 10 minutes of test running.
2018-09-27 13:53:02 -07:00
Pavel Avgustinov
c7137cee75
Merge pull request #245 from adityasharad/merge/1.18-next-270918
...
Merge rc/1.18 into next.
2018-09-27 21:51:44 +01:00
Robert Marsh
b6cc6a3b23
C++: Fix BinaryLogicalOperators always being guards
2018-09-27 13:09:15 -07:00
Robert Marsh
f323fa1df8
C++: test changes from previous commit
...
The IR for the conversion to bool results in a comparison where the left
hand side is not the result of any expression in the AST, so they can't
be usefully converted back to the AST
2018-09-27 13:06:57 -07:00
Nick Rolfe
a55d6d7631
C++: CRLF -> LF in .expected file
2018-09-27 17:03:31 +01:00
Aditya Sharad
5ff9e3514d
Merge rc/1.18 into next.
2018-09-27 15:20:25 +01:00
Ian Lynagh
fd91374b2f
C++: Update test output
2018-09-26 18:22:20 +01:00
Aditya Sharad
4ff79b046d
C++: Update HashCons test output.
2018-09-26 17:56:21 +01:00
Aditya Sharad
75680dbfef
Merge branch 'next' into qlucie/master
2018-09-26 12:08:33 +01:00
Aditya Sharad
accacdc9a4
Merge rc/1.18 into next.
2018-09-25 21:59:47 +01:00
Dave Bartolomeo
1f36f5552f
Normalize all text files to LF
...
Use `* text=auto eol=lf`
2018-09-23 16:24:31 -07:00
Dave Bartolomeo
aa267c8302
C++: Force LF for .c,.cpp,.h,.hpp
2018-09-23 16:23:52 -07:00
Jonas Jensen
e2a17e9740
Merge remote-tracking branch 'upstream/rc/1.18' into mergeback-20180921_104253
2018-09-21 10:45:54 +02:00
Robert Marsh
cc97cf9297
C++: add isReachableFromFunctionEntry
2018-09-20 10:06:19 -07:00
Robert Marsh
755e21d355
C++: improve conversion handling in IRGuards.qll
2018-09-20 10:06:18 -07:00
Robert Marsh
ad8f30d2f7
C++: accept test output and add IR guards tests
2018-09-20 10:06:17 -07:00
Robert Marsh
d7e630b3c6
C++: Add IR-based port of Guards library
...
For ease of reviewing, I've checked in the .expected files from the
AST-based guards library. The next commit accepts output for these tests
and adds tests that use getAST rather than the translation layer.
2018-09-20 10:06:16 -07:00
Robert Marsh
69962bd06c
Merge pull request #203 from dave-bartolomeo/dave/GVN
...
C++: Initial attempt at IR-based value numbering
2018-09-20 10:00:45 -07:00
Dave Bartolomeo
5a25602c28
C++: Move GVN out of "internal" directory
2018-09-20 08:21:15 -07:00
Dave Bartolomeo
27cee9bd80
C++: Handle inheritance conversions in IR GVN
2018-09-20 08:00:38 -07:00
Nick Rolfe
f1358b7c02
C++: test for Class::isStandardLayout()
2018-09-19 10:26:11 +01:00
Dave Bartolomeo
43f0289f0f
C++: Remove Phi instructions from previous IR generations
...
It turns out that when building aliased SSA IR, we were still keeping around the Phi instructions from unaliased SSA IR. These leftover instructions didn't show up in dumps because they were not assigned to a block. However, when dumping additional instruction properties, they would show up as a top-level node in the dump, without a label.
2018-09-18 11:28:09 -07:00
Jonas Jensen
86fe0ce42e
Merge pull request #107 from rdmarsh2/rdmarsh/cpp/HashCons
...
C++: HashCons library
2018-09-18 11:45:26 +02:00
Dave Bartolomeo
46b2c19c66
C++: Initial attempt at IR-based value numbering
2018-09-17 17:19:05 -07:00
Jonas Jensen
a7d897108a
C++: Exclude non-toplevel items from resolveClass
...
Also exclude templates as their names are not canonical.
The test changes in `isfromtemplateinstantiation/` are the inverses of
what we got in 34c9892f7 , which should be a good thing.
2018-09-17 15:55:34 +02:00
Jonas Jensen
d7f442b042
C++: Force unique resolveClass results
2018-09-17 15:52:38 +02:00
Jonas Jensen
b633ee1bc4
C++: Add more tests of resolveClass
...
These tests exercise the problematic cases where a variable can appear
to have multiple types because of how we fail to account for qualified
names when comparing type names.
2018-09-17 15:48:02 +02:00
Jonas Jensen
9886e4a056
Merge remote-tracking branch 'upstream/master' into merge-master-next-20180913
2018-09-13 20:28:17 +02:00
Nick Rolfe
0957ee7c1b
C++: support clang's __builtin_convertvector
2018-09-13 10:28:41 +01:00