Commit Graph

29908 Commits

Author SHA1 Message Date
Jonas Jensen
4304a4e1bc C++: Fix docs copy-paste error 2018-09-11 15:39:44 +02:00
Jonas Jensen
bb49966395 C++: Fixup getEndOfValueInitializedRange 2018-09-11 15:19:18 +02:00
Jonas Jensen
d956bf90ad C++: Document the three predicates for array size 2018-09-11 15:15:44 +02:00
ian-semmle
628d7b95d9 Merge pull request #178 from jbj/ir-duplicateOperand-perf
C++: IR: InstructionSanity::duplicateOperand perf
2018-09-11 12:53:27 +01:00
Asger F
0a4a5da1f0 JavaScript: update output of CFG test 2018-09-11 12:15:01 +01:00
Asger F
3d444f3dc6 JavaScript: fix CFG for EnhancedForStmt 2018-09-11 12:15:01 +01:00
Jonas Jensen
3c3cc2eb3e Merge pull request #175 from hvitved/merge-rc
Merge rc/1.18 into master
2018-09-11 13:10:02 +02:00
Jonas Jensen
ecfc53668f C++: IR: InstructionSanity::duplicateOperand perf
The `InstructionSanity::duplicateOperand` predicate used `count` instead
of `strictcount`. The 0-case of this `count` was as large as the
Cartesian product of `Instruction` and `OperandTag`, which made
`duplicateOperand` take forever to compute on large snapshots.
2018-09-11 12:04:27 +02:00
Jonas Jensen
b2571c8d63 C++: IR: Fix performance of value-init ranges
On a snapshot of Postgres, evaluation of
`getNextExplicitlyInitializedElementAfter#fff#antijoin_rhs#1` took
forever, preventing the computation of the IR. I haven't been able to
reproduce it with a small test case, but the implementation of
`getNextExplicitlyInitializedElementAfter` was fragile because it called
the inline predicate `ArrayAggregateLiteral.isInitialized`. It also
seemed inefficient that `getNextExplicitlyInitializedElementAfter` was
computed for many values of its parameters that were never needed by the
caller.

This commit replaces `getNextExplicitlyInitializedElementAfter` with a
new predicate named `getEndOfValueInitializedRange`, which should have
the same behavior but a more efficient implementation. It uses a helper
predicate `getNextExplicitlyInitializedElementAfter`, which shares its
name with the now-deleted predicate but has behavior that I think
matches the name.
2018-09-11 11:43:46 +02:00
Tom Hvitved
ec7beab9fa Merge pull request #176 from felicity-semmle/1.18/csharp-change-notes
LGTM 1.18: finalize change notes for C#
2018-09-11 09:57:16 +02:00
Felicity Chapman
f48317f381 Minor updates to prepare for publication 2018-09-11 08:27:20 +01:00
Felicity Chapman
620f99c5a3 Remove template text 2018-09-11 08:14:17 +01:00
Tom Hvitved
70e713122f Merge branch 'rc/1.18' into merge-rc 2018-09-11 09:11:03 +02:00
Robert Marsh
0e44bf3c30 C++: Add import for LGTM 2018-09-10 12:22:45 -07:00
Robert Marsh
cb9f1269f9 C++: select example exprs for HashCons portably
This makes two changes to how example exprs are selected. Example exprs
are now ordered separately by each piece of the location, rather than by
stringifying their location. Second, UnknownLocations are now ordered
after locations with absolute paths, by using "~" in the lexicographic
comparison of absolute paths. I think this works on both POSIX and
Windows systems, but it's possible I'm missing a way to start an
absolute path with a unicode character.
2018-09-10 12:22:45 -07:00
Robert Marsh
fb8ad9387d C++: Uniqueness fixes for HashCons 2018-09-10 12:22:45 -07:00
Robert Marsh
990bfb4663 C++: change note for HashCons library 2018-09-10 12:22:45 -07:00
Robert Marsh
166dba288b C++: accept test output 2018-09-10 12:22:45 -07:00
Robert Marsh
bbafcd9941 C++: typeid and noexcept fixes in HashCons 2018-09-10 12:22:45 -07:00
Robert Marsh
2d098fed98 fix HashCons for typeid of type 2018-09-10 12:22:44 -07:00
Robert Marsh
c42ecfe8f9 C++: Simplify HashCons for new and handle extents 2018-09-10 12:22:44 -07:00
Robert Marsh
9f476e585a C++: Simplify some code 2018-09-10 12:22:44 -07:00
Robert Marsh
fa9eeea302 C++: remove implicit this handling in HashCons 2018-09-10 12:22:44 -07:00
Robert Marsh
246ae2d7e8 C++: fix performance of argument hash-consing 2018-09-10 12:22:44 -07:00
Robert Marsh
06a3e8fc76 C++: Hashcons for ?:, ExprCall, and weird stuff 2018-09-10 12:22:44 -07:00
Robert Marsh
cfeed30a89 C++: Hashcons tests for ArrayExpr 2018-09-10 12:22:44 -07:00
Robert Marsh
8189798f43 C++: HashCons for throw 2018-09-10 12:22:43 -07:00
Robert Marsh
85cfb0202f C++: add HashCons for delete expressions 2018-09-10 12:22:43 -07:00
Robert Marsh
752f39b537 C++: initial support for aggregate initializers 2018-09-10 12:22:43 -07:00
Robert Marsh
8f446aa9cc C++: fix handling of aligned allocators 2018-09-10 12:22:43 -07:00
Robert Marsh
5549b6fcab C++: HashCons for new, new[], sizeof, alignof 2018-09-10 12:22:43 -07:00
Robert Marsh
fede8d63d4 C++: respond to PR comments 2018-09-10 12:22:43 -07:00
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
3a5eb03055 C++: change floating point value in test 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
Robert Marsh
d8dc75abf4 C++: rename HashCons test 2018-09-10 12:22:41 -07:00
Robert Marsh
8b8ec7c5aa C++: add literal tests 2018-09-10 12:22:41 -07:00
Robert Marsh
3c6a9c08a2 C++: first tests for HashCons 2018-09-10 12:22:41 -07:00
Kevin Backhouse
2d7109b8f5 C++: initial implementation of a HashCons library. 2018-09-10 12:22:41 -07:00
Behrang Fouladi Azarnaminy
02047ea260 Edit .expected file 2018-09-10 10:27:29 -07:00
Tom Hvitved
621d845722 Merge pull request #11 from calumgrant/cs/standalone-cfg-fixes
C#: Fix CFG for unknown expressions
2018-09-10 16:41:11 +02:00
semmle-qlci
35a83bf0cb Merge pull request #173 from aschackmull/java/mockito-verify2
Approved by yh-semmle
2018-09-10 14:31:43 +01:00
ian-semmle
953537e856 Merge pull request #174 from nickrolfe/vec_fill
C++: support for clang `__builtin_addressof` and GNU vector fill operations
2018-09-10 14:31:11 +01:00
Anders Schack-Mulligen
4473ccdd5e Java: Add Mockito.verify to MockitoMockMethod. 2018-09-10 11:20:27 +02:00
Nick Rolfe
ab05be7b13 C++: update stats for builtin_addressof and vec_fill 2018-09-10 10:19:20 +01:00