Commit Graph

2961 Commits

Author SHA1 Message Date
Jonas Jensen
e062851709 Merge pull request #517 from dave-bartolomeo/dave/IRFilter
C++: Don't generate IR for functions with bad ASTs
2018-11-22 10:02:18 +01:00
Dave Bartolomeo
97fd7b46cc C++: Add tests for filtering bad ASTs 2018-11-21 16:39:08 -08:00
ian-semmle
366934f884 Merge pull request #350 from geoffw0/cpp-205-detail
CPP: Add detail to the CPP-205 test
2018-11-21 13:30:53 +00:00
Dave Bartolomeo
3715215b3f C++: Add IR support for ConditionalDeclExpr
Also fixes several places in the library that weren't handling `ConditionalDeclExpr`  correctly.
2018-11-21 00:14:44 -08:00
Dave Bartolomeo
07f9fe6ee4 C++: Add Uninitialized instruction for list-initialized variables
This commit inserts an `Uninitialized` instruction to "initialize" a local variable when that variable is initialized with an initializer list. This ensures that there is always a definition of the whole variable before any read or write to part of that variable.

This change appears in a different form in @rdmarsh2's Chi node PR, but I needed to refactor the initialization code anyway to handle ConditionDeclExpr.
2018-11-20 16:12:44 -08:00
Geoffrey White
342164ff71 CPP: Clean up / normalize some test code. 2018-11-20 09:50:59 +00:00
Aditya Sharad
f0715b09e1 Merge master into next. 2018-11-14 10:06:27 +00:00
Jonas Jensen
cd874f7982 Merge pull request #454 from geoffw0/move-tests
CPP: Move the tests from library-tests/queries
2018-11-13 10:19:56 +01:00
Geoffrey White
1d464ae35d CPP: Merge the ExprHasNoEffect tests. 2018-11-12 16:26:50 +00:00
Geoffrey White
1417929cdf CPP: Merge the Todo/FixmeComments tests. 2018-11-12 16:26:50 +00:00
Geoffrey White
03cad6c084 CPP: Move the AV Rule 97 test. 2018-11-12 16:07:03 +00:00
Geoffrey White
2d665e51d0 CPP: Move the BitwiseSignCheck.ql test. 2018-11-12 16:07:03 +00:00
Jonas Jensen
0cb09b113f Merge pull request #251 from rdmarsh2/rdmarsh/cpp/sign-analysis
C++: Sign analysis library
2018-11-12 15:23:18 +01:00
Jonas Jensen
1500237009 Merge remote-tracking branch 'upstream/master' into mergeback-20181112 2018-11-12 13:24:27 +01:00
Jonas Jensen
0caf0f1f15 Merge pull request #430 from geoffw0/exprtemplate
CPP: Exclude template code from ExprHasNoEffect.ql
2018-11-12 09:27:36 +01:00
Aditya Sharad
761e5efd60 Merge master into next.
JavaScript semantic conflicts fixed by referring to the `LegacyLanguage` enum.
C++ conflicts fixed by accepting Qltest output.
2018-11-09 18:49:35 +00:00
Robert Marsh
d9495da225 C++: fix test 2018-11-09 10:15:28 -08:00
Geoffrey White
09782d145e CPP: Annotate expr_has_no_effect test. 2018-11-09 17:23:59 +00:00
Geoffrey White
3f0e28aea9 CPP: Fix additional expr_has_no_effect test. 2018-11-09 17:23:59 +00:00
Robert Marsh
4fdc992cd9 C++: IRGuards uses Operand; fix CP in SignAnalysis 2018-11-08 14:43:51 -08:00
Robert Marsh
0d9e2098f2 C++: test for bounded bounds in sign analysis 2018-11-08 11:38:34 -08:00
Robert Marsh
1d7e802157 C++: move sign analysis to new Operand type 2018-11-07 16:07:37 -08:00
Dave Bartolomeo
5bf88f0f0a C++: Fix mixed tabs and spaces in non-test code 2018-11-07 11:32:17 -08:00
Jonas Jensen
9ee4d3b187 Merge pull request #378 from nickrolfe/uuidof0
C++: handle __uuidof(0)
2018-11-07 12:53:44 +01:00
Jonas Jensen
6f2fd05480 Merge pull request #354 from geoffw0/return-exception
CPP: Remove successor edges after calls to non-returning functions
2018-11-07 09:24:41 +01:00
Robert Marsh
9d2d381e68 C++: test fixes for sign analysis 2018-11-06 12:02:39 -08:00
Robert Marsh
554fea46c7 C++: Sign analysis for casts and unsigned integers 2018-11-06 12:02:38 -08:00
Robert Marsh
d1ae939c9c C++: use guards and operands in sign analysis 2018-11-06 12:02:38 -08:00
Robert Marsh
a3c6b8e575 C++: port sign analysis library from Java 2018-11-06 12:02:38 -08:00
Geoffrey White
ee4cfe8eb7 CPP: Update expected output for changes elsewhere. 2018-11-06 17:58:33 +00:00
Geoffrey White
e6e0d69b7d CPP: Re-apply effect of discover_walk. 2018-11-06 17:53:18 +00:00
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