Geoffrey White
f990634481
C++: Fix the XMLParent Constructor.
2019-12-16 11:07:16 +00:00
Geoffrey White
a6407f00a7
C++: Extend the files test to cover the issue with XMLParent.
2019-12-16 11:07:12 +00:00
Geoffrey White
c4c1dfa2b9
C++: Modernize the files tests.
2019-12-16 11:07:07 +00:00
Dave Bartolomeo
914288d3c5
C++: Fix toString() predicates that don't hold
2019-12-13 17:06:05 -07:00
Henning Makholm
6bdf186d1e
C tests: generalize arguments tests
...
With the coming `codeql test` support, the `predefined_macros` file will not
necessarily be located under a `tools` directory. Change the test to hide more
of its actual path, so it will work in both cases.
2019-12-06 01:21:17 +01:00
Dave Bartolomeo
cbb6797ca8
Merge from master and resolve conflicts
2019-12-04 10:14:52 -07:00
Dave Bartolomeo
50dc5e2ba3
Merge pull request #2438 from rdmarsh2/rdmarsh/ir-line-number-ids
...
C++/C#: use line numbers for instruction IDs
2019-12-03 18:48:28 -08:00
Geoffrey White
2faae4dcb1
CPP: Autoformat.
2019-12-03 09:00:43 +00:00
Dave Bartolomeo
acc3d23877
Clarify comment
2019-12-02 11:53:43 -08:00
Jonas Jensen
763b18cd11
Merge remote-tracking branch 'upstream/master' into StackVariable
...
Conflicts:
change-notes/1.24/analysis-cpp.md
cpp/ql/src/Security/CWE/CWE-131/NoSpaceForZeroTerminator.ql
2019-11-28 17:51:20 +01:00
Dave Bartolomeo
aa6bd07971
Merge remote-tracking branch 'upstream/master' into dbartol/May-Must
2019-11-26 14:07:13 -07:00
Robert Marsh
e368d5dda0
C++: simplify getDisplayOrderInBlock
2019-11-26 16:02:30 -05:00
Jonas Jensen
c05cc77a91
Merge pull request #2421 from dbartol/dbartol/IndirectAlias
...
C++/C#: Cleanup in preparation for indirect alias analysis
2019-11-26 21:59:17 +01:00
Dave Bartolomeo
f3b4140948
C++/C#: Consistent handling of "may" vs. "must" memory accesses
...
In the IR, some memory accesses are "must" accesses (the entire memory location is always read or written), and some are "may" accesses (some, all, or none of the bits in the location are written). We previously had to special case specific "may" accesses in a few places. This change regularizes our handling of "may" accesses.
The `MemoryAccessKind` enumeration now describes only the extent of the access (the set of locations potentially accessed), but does not distinguish "must" from "may". The new predicates `Operand.hasMayMemoryAccess()` and `Instruction.hasResultMayMemoryAccess()` hold when the access is a "may" access.
Unaliased SSA now correctly ignores variables that are ever accessed via a "may" access.
Aliased SSA now distinguishes `MemoryLocation`s for "may" and "must" accesses. I've refactored `getOverlap()` into the core `getExtentOverlap()`, which considers only the extent, but not the "may" vs. "must", and `getOverlap()`, which tweaks the result of `getExtentOverlap()` based on "may" vs. "must" and read-only locations.
When determining the overlap between a `Phi` operand and its definition, we now use the result of the defining `Chi` instruction, if one exists. This gives exact definitions for `Phi` operands for virtual variables.
2019-11-26 12:13:07 -07:00
Robert Marsh
60b384a6e5
C++/C#: use line numbers for instruction IDs
...
This should reduce the number of merge conflicts in the IR tests resulting
from instruction ID changes due to inserting or removing instructions
2019-11-25 18:27:59 -05:00
Dave Bartolomeo
44c1c5a7ab
C++: Update points_to.ql test to use new bit offset format
2019-11-25 11:13:02 -07:00
Dave Bartolomeo
eda47bfc51
C++: Add SSA sanity tests to IR tests
2019-11-22 16:10:51 -07:00
Dave Bartolomeo
51ff262cbc
C++/C#: Add IR SSA sanity tests
2019-11-22 13:16:05 -07:00
Geoffrey White
5014432472
CPP: Tests: Add a test of NewArrayExpr.getAllocatedType() and NewArrayExpr.getExtent().
2019-11-22 15:16:32 +00:00
Robert Marsh
05aebeff79
Merge branch 'master' into rdmarsh/cpp/ir-callee-side-effects
2019-11-21 13:45:31 -08:00
Robert Marsh
34593701b2
Merge branch 'master' into rdmarsh/cpp/ir-callee-side-effects
2019-11-20 10:03:32 -08:00
Jonas Jensen
c41114334f
Merge remote-tracking branch 'upstream/master' into ir-dataflow-toString
...
Solved conflicts in `*.expected` by re-running the tests.
2019-11-19 14:27:27 +01:00
Jonas Jensen
1498499994
C++: Relax type in two tests
2019-11-19 11:31:34 +01:00
Jonas Jensen
e57f98ca64
C++: Use StackVariable in def-use libraries
...
Most of the implementation was already in terms of
`SemanticStackVariable`, so not much should have changed.
2019-11-19 11:30:59 +01:00
Jonas Jensen
95a333d28c
C++: Use StackVariable in SSA libraries
...
This means we'll no longer get SSA definitions for thread-local
local-scope variables.
2019-11-19 11:30:59 +01:00
Jonas Jensen
8110039e0a
C++: Bring back the StackVariable QL class
...
The new `StackVariable` class actually denotes what its name suggests.
2019-11-19 11:23:34 +01:00
Robert Marsh
180a3c9f26
C++: accept test changes
2019-11-15 11:01:18 -08:00
Ian Lynagh
4442fd8407
C++: Accept changes to syntax-zoo tests
2019-11-15 14:42:36 +00:00
Ian Lynagh
2cf714a923
C++: Follow changes in lambda locations
2019-11-15 14:42:36 +00:00
Ian Lynagh
8e00516ecf
C++: Accept changes in ir test
2019-11-15 14:42:36 +00:00
Jonas Jensen
73d9cc2e7b
Merge pull request #2309 from geoffw0/cpp418
...
CPP: QLDoc enhancements
2019-11-15 08:46:08 +01:00
Dave Bartolomeo
81262d5948
Merge pull request #2328 from geoffw0/routinetest
...
CPP: Add a quick test of RoutineType.
2019-11-14 15:49:13 -07:00
Robert Marsh
facbd32062
Merge branch 'master' into rdmarsh/cpp/ir-callee-side-effects
2019-11-14 11:09:13 -08:00
Robert Marsh
2fb1d4d1b1
C++: fix IR return block successors
2019-11-14 10:29:48 -08:00
Geoffrey White
7408726f41
Merge pull request #2312 from jbj/pointer-wraparound-query
...
C++: New query: Pointer overflow check
2019-11-14 16:13:04 +00:00
Geoffrey White
dc34fa366c
CPP: Add a test of RoutineType.
2019-11-14 15:13:52 +00:00
Dave Bartolomeo
08620046ab
Merge pull request #2068 from rdmarsh2/rdmarsh/cpp/ir-constructor-side-effects
...
C++: side effect instrs for constructor qualifiers
2019-11-13 14:56:24 -07:00
Geoffrey White
32b5501177
CPP: Add a test of ErroneousType.
2019-11-13 18:53:43 +00:00
Jonas Jensen
8d79634f8c
C++: Factor out isFromMacroDefinition predicate
...
This trick for excluding elements from macro bodies but not macro
arguments looks promising and should probably be used much more. With
this commit, it's now easy to use from any query.
Performance is still good because the new predicate gets appropriately
magiced.
2019-11-13 14:07:33 +01:00
Robert Marsh
47f87c214c
Merge branch 'master' into rdmarsh/cpp/ir-constructor-side-effects
2019-11-12 10:31:04 -08:00
Ziemowit Laski
faf4342d8e
[CPP-418] Update references to BuiltInOperationBuiltInOffsetOf and __builtin_offsetof.
2019-11-12 17:35:50 +00:00
Jonas Jensen
eb55d964a8
C++: Fix semantic merge conflict
...
This test output must have been wrong because I produced it with an
extractor that didn't have #2153 applied.
2019-11-11 15:39:53 +01:00
Jonas Jensen
279fc16b60
C++: ConvertToBase -> ConvertToNonVirtualBase
...
This rename was done with
perl -p -i -e's/ConvertToBase/ConvertToNonVirtualBase/g' **/*.ql* **/*.expected
followed by re-running the affected tests.
2019-11-10 10:35:53 +01:00
Robert Marsh
64b34ad975
Merge branch 'master' of github.com:Semmle/ql into rdmarsh/cpp/ir-constructor-side-effects
2019-11-08 14:06:36 -08:00
Robert Marsh
1dc0cb89d0
Merge branch 'master' of github.com:Semmle/ql into rdmarsh/cpp/ir-constructor-side-effects
2019-11-08 12:47:27 -08:00
Dave Bartolomeo
c365b2f2f0
Merge from master
...
Resolve conflicts in test output
2019-11-08 10:42:29 -07:00
Dave Bartolomeo
17f76c2516
C++: Fix merge conflicts
2019-11-07 22:02:15 -07:00
Robert Marsh
2582b69e17
Merge branch 'master' of github.com:Semmle/ql into rdmarsh/cpp/ir-constructor-side-effects
2019-11-07 15:46:08 -08:00
Robert Marsh
e93dcdb16c
Merge branch 'master' into rdmarsh/cpp/ir-constructor-side-effects
2019-11-07 15:19:46 -08:00
Robert Marsh
f483ec152b
Merge branch 'master' of github.com:Semmle/ql into rdmarsh/cpp/uninit-string-initializers
2019-11-07 14:36:58 -08:00