Robert Marsh
e6314c5f35
C++: add support for enums in HashCons
2018-09-10 12:22:43 -07:00
Robert Marsh
91da02bacf
C++: uniqueness fixes for HashCons
2018-09-10 12:22:42 -07:00
Robert Marsh
e0af30a789
C++: clean up commented-out code
2018-09-10 12:22:42 -07:00
Robert Marsh
77c5a8e7bf
C++: support impure binary operations in HashCons
2018-09-10 12:22:42 -07:00
Robert Marsh
b8bd285d64
C++: support functions in HashCons
2018-09-10 12:22:42 -07:00
Robert Marsh
a8895f4bed
C++: Support crement ops in HashCons
2018-09-10 12:22:42 -07:00
Robert Marsh
cf222c51ac
C++: treat constant-valued exprs structurally
2018-09-10 12:22:42 -07:00
Kevin Backhouse
2d7109b8f5
C++: initial implementation of a HashCons library.
2018-09-10 12:22:41 -07:00
Nick Rolfe
ab05be7b13
C++: update stats for builtin_addressof and vec_fill
2018-09-10 10:19:20 +01:00
Jonas Jensen
6bfbd21390
Merge pull request #159 from ian-semmle/EnumConstant
...
C++: Fix spurious extra qualified names for enum constants within a class
2018-09-08 14:55:33 +02:00
Nick Rolfe
2abf91b6ab
C++: class and test for clang's __builtin_addressof
2018-09-07 12:35:12 +01:00
Nick Rolfe
93103e1042
C++: add class and test for a GNU vector fill operation
2018-09-07 12:07:28 +01:00
Nick Rolfe
8e3f63954c
C++: add dbscheme expr kinds for __builtin_addressof and vector fill
2018-09-07 12:06:44 +01:00
Jonas Jensen
4d8a6e586f
Merge pull request #156 from geoffw0/empty-file
...
C++: Remove empty files.
2018-09-06 20:42:43 +02:00
semmle-qlci
10329fa188
Merge pull request #134 from jbj/getOperandMemoryAccess-this
...
Approved by dave-bartolomeo
2018-09-06 09:18:57 +01:00
Jonas Jensen
d5e0357201
Revert "Revert "Version: Bump to 1.19.0 dev.""
...
This reverts commit ab2bec743a .
2018-09-05 21:07:19 +02:00
Aditya Sharad
f27945216f
Merge rc/1.18 into master.
2018-09-05 15:32:30 +01:00
semmle-qlci
43e1e62d3a
Merge pull request #133 from jbj/IRBlock-number-split
...
Approved by dave-bartolomeo
2018-09-05 14:58:15 +01:00
semmle-qlci
a70526f79f
Merge pull request #123 from jbj/primitive-bb-number-split
...
Approved by dave-bartolomeo
2018-09-05 13:21:14 +01:00
Ian Lynagh
ca082be371
C++: Fix spurious extra qualified names for enum constants within a class
2018-09-05 12:29:43 +01:00
Jonas Jensen
e0c073360b
C++: Remove CP in getOperandMemoryAccess
...
The overrides of `Instruction.getOperandMemoryAccess` did not relate
`this` to any of its other parameters, which made it attempt to compute
the Cartesian product of `Instruction` and `TPhiOperand`. This happened
only during computation of aliased SSA. Perhaps the optimizer was able
to eliminate the CP for the non-aliased SSA computation.
With this change, I'm able to compute aliased SSA for medium-sized
snapshots.
2018-09-05 08:52:39 +02:00
Jonas Jensen
5541b9fbf1
C++: Split IRBlock index from IRBlock membership
...
Instead of computing these two things in one predicate, they are
computed in separate predicates and then joined. This splits the
predicate `getInstruction`, which took 81s before, into predicates that
together take 20s on a medium-sized db.
2018-09-05 08:50:36 +02:00
Jonas Jensen
1bcae97447
Merge pull request #114 from geoffw0/samate-realloc
...
CPP: Handle 'realloc' better in MemoryMayNotBeFreed.ql
2018-09-05 08:35:13 +02:00
semmle-qlci
2d4f664be8
Merge pull request #157 from ian-semmle/declarationName
...
Approved by jbj
2018-09-04 23:08:27 +01:00
Nick Rolfe
ccceef30e6
Merge pull request #155 from adityasharad/revert/master/version-1.19.0
...
Revert "Version: Bump to 1.19.0 dev."
2018-09-04 21:16:43 +01:00
Jonas Jensen
43704e2f0d
Merge pull request #144 from ian-semmle/topLevel2
...
C++: Improve GlobalNamespace.getADeclaration()
2018-09-04 20:22:22 +02:00
semmle-qlci
20ade48975
Merge pull request #146 from ian-semmle/TemplateParameterName
...
Approved by jbj
2018-09-04 19:16:55 +01:00
Ian Lynagh
ce5653a2f6
C++: Tweak qldoc for declaration names
2018-09-04 19:14:16 +01:00
Dave Bartolomeo
4a1d04b423
C++: Fix deprecated predicate warnings
2018-09-04 10:30:48 -07:00
Geoffrey White
ae80b8dbec
Merge pull request #145 from nickrolfe/rewording
...
C++: clearer alert wording in integer-multiplication-cast-to-long
2018-09-04 18:00:37 +01:00
Geoffrey White
71483c7025
CPP: Remove some empty source files.
2018-09-04 17:51:46 +01:00
Dave Bartolomeo
fce7a5fccb
C++: Final IR reshuffle
...
Moved IR flavors into "implementation", with internal files under "implementation/internal". Made `IRBlockConstruction` just a nested module of `IRConstruction`/`SSAConstruction`, so it gets picked up from the `Construction` parameter of the `IR` module, rather than being picked up just from being in the same directory as `IRBlock`.
2018-09-04 09:05:27 -07:00
Dave Bartolomeo
aa4436fa22
C++: More IR reshuffling
...
Remove redundant "_ir" suffix.
Move non-user-importable modules into "implementation" directory.
2018-09-04 09:05:21 -07:00
Dave Bartolomeo
97cfbd9488
C++: "IR" means "Aliased SSA IR"
...
This change makes the public IR.qll module resolve to the flavor of the IR that we want queries to use. Today, this is the aliased SSA flavor of the IR. Should we add additional IR iterations in the future, we'll update IR.qll to resolve to whichever one we consider the default.
I moved the PrintIR.ql and IRSanity.ql queries into the internal directories of the corresponding flavors. There's still a PrintIR.ql and an IRSanity.ql in the public IR directory, which use the same IR flavor as the public IR.qll.
2018-09-04 09:05:15 -07:00
Dave Bartolomeo
9fd5f26e2e
C++: Remove unnecessary Impl suffix from some files
2018-09-04 09:05:10 -07:00
Dave Bartolomeo
aacee8fecf
C++: Reshuffle IR files into a consistent directory structure
...
There are no real code changes here, other than to fix up `import`s. All tests still hae the same output, as expected.
A future commit will hide the IR flavors other than the one we want queries to use directly.
2018-09-04 09:05:03 -07:00
Aditya Sharad
ab2bec743a
Revert "Version: Bump to 1.19.0 dev."
...
The version bump should now go into the `next` branch rather than `master`.
This reverts commit 2363f49e3a .
2018-09-04 16:01:09 +01:00
Nick Rolfe
f2d030a7e6
C++: shorten message in integer-multiplication-cast-to-long
2018-09-04 14:45:12 +01:00
Jonas Jensen
e0ba2b2251
C++: Fix name of suppressUnusedType
2018-09-04 13:38:28 +02:00
Jonas Jensen
ab944f3807
Merge pull request #139 from geoffw0/function-wrappers
...
CPP: Make FunctionWithWrappers `toCause` work on builtins.
2018-09-04 13:36:33 +02:00
Ian Lynagh
3fd6a8de7d
C++: Fix the definition of GlobalNamespace.getADeclaration()
...
Globals can still have declarations in declaration statements.
We already rule out local variables etc via the isTopLevel check,
so we don't need to consider DeclStmt.
2018-09-04 11:37:10 +01:00
Jonas Jensen
73675e29f2
Merge pull request #138 from ian-semmle/topLevel
...
C++: Use Declaration.isTopLevel() in GlobalNamespace.getADeclaration()
2018-09-04 10:03:19 +02:00
Jonas Jensen
07bacbf389
C++: Follow suppressUnusedThis convention
2018-09-04 09:40:50 +02:00
Jonas Jensen
6e9cc46e80
Merge pull request #131 from ian-semmle/namespace_vars
...
C++: Give namespace variables a qualified name
2018-09-04 08:56:01 +02:00
Jonas Jensen
a2946f71bd
Merge pull request #96 from ian-semmle/typo
...
C++: Fix typo
2018-09-04 08:51:15 +02:00
Jonas Jensen
adc5ee86ad
Merge pull request #128 from geoffw0/cwe-190-precision
...
CPP: Adjust precisions for the CWE-190 queries.
2018-09-04 08:44:38 +02:00
Ian Lynagh
4230adbca2
C++: Remove reundant override
2018-09-03 18:12:30 +01:00
Nick Rolfe
04e919df9d
C++: clearer alert wording in integer-multiplication-cast-to-long
2018-09-03 16:56:56 +01:00
Aditya Sharad
2363f49e3a
Version: Bump to 1.19.0 dev.
...
This keeps the QL for Eclipse language plugins in sync with internal `master`.
2018-09-03 16:41:28 +01:00
Jonas Jensen
88f80e4d4b
C++: Silence two more QL compiler warnings
...
One was for an unused parameter (a deliberate CP of `Type` x
`VoidType`), and one was for use of a deprecated predicate.
2018-09-03 13:45:04 +02:00