Tom Hvitved
ee2496ab7c
C#: Add unification tests for tuple types
2019-11-12 12:08:03 +01:00
Calum Grant
9715d8849a
C#: Disable a CIL consistency check that seems to be invalid.
2019-11-08 16:50:51 +00:00
Calum Grant
4e2e64e949
C#: Fix up CallableReturns tests.
2019-11-08 16:42:22 +00:00
Calum Grant
e12a33d4e0
C#: Disposal tests do not depend on external DLLs.
2019-11-08 16:22:47 +00:00
Calum Grant
d64c244257
C#: Fix test for AspLine.
2019-11-08 15:48:56 +00:00
Tom Hvitved
af5c60c341
C#: Use type unification library in virtual dispatch library
2019-11-08 12:06:05 +01:00
Tom Hvitved
f4b92137d9
C#: Add more virtual dispatch tests
2019-11-08 12:06:05 +01:00
Tom Hvitved
ae54852fa4
C#: Add type unification library
2019-11-08 12:06:05 +01:00
Tom Hvitved
fd63246f44
Merge remote-tracking branch 'upstream/master' into csharp/unsafe-deserialization
2019-11-04 13:42:35 +01:00
Tom Hvitved
cc7c30def8
Merge pull request #2179 from calumgrant/cs/local-disposal
...
C#: Fix a FP in cs/local-not-disposed
2019-11-04 11:23:50 +01:00
Tom Hvitved
eb990525d7
C#: Add precision tags to UnsafeDeserialization[UntrustedInput].ql
2019-10-28 14:19:40 +01:00
Dave Bartolomeo
cc5a689293
C++/C#: Fix up after merge from master
2019-10-25 14:11:34 -07:00
Jonas Jensen
22de0efc58
Merge pull request #2008 from dave-bartolomeo/dave/IRType2
...
C++: Implement language-neutral IR type system
2019-10-25 09:42:23 +02:00
Tom Hvitved
6d22e351f1
Merge pull request #2151 from raulgarciamsft/users/raul/oss
...
Users/raul/oss
2019-10-24 19:35:40 +02:00
Tom Hvitved
4ac32c4b12
C#: Fix more tests
2019-10-24 13:00:14 +02:00
Calum Grant
b9ba534bcb
C#: Update qltest output.
2019-10-24 11:06:34 +01:00
Calum Grant
df1e215d98
C#: Add ?? as a local dataflow step.
2019-10-23 21:47:03 +01:00
Geoffrey White
0427b1eb3f
C#: Fix more tests.
2019-10-23 18:20:44 +01:00
Calum Grant
48c0d9ecca
C#: Add qltests for ?? dataflow.
2019-10-23 15:17:26 +01:00
Calum Grant
6b15bf62fd
C#: Rewrite null-coalsecing logic
2019-10-23 13:49:22 +01:00
Calum Grant
01ad93d199
C#: Fix for false positive.
2019-10-23 12:26:01 +01:00
Calum Grant
ee7cf17b15
C#: Add test case for local disposal.
2019-10-23 11:22:52 +01:00
Raul Garcia (MSFT)
cb8dcf7db2
Publishing queries to the OSS Semmle repository
2019-10-22 09:55:39 +01:00
Dave Bartolomeo
71a6b5dffe
C++/C#: Fix some duplicate IRType problems, and add a sanity test
2019-10-21 10:46:30 -07:00
Calum Grant
4ee3f2c46e
Merge pull request #2139 from hvitved/csharp/dataflow/callcontext-bool-pruning
...
C#: Data-flow pruning based on call contexts
2019-10-21 09:49:05 +01:00
Robert Marsh
b8bbce0eb6
C#: sync IR
2019-10-17 11:00:04 -07:00
Dave Bartolomeo
167d2289c4
Merge from master
2019-10-16 10:10:10 -07:00
Tom Hvitved
c57015af7d
C#: Data-flow pruning based on call contexts
2019-10-16 13:51:32 +02:00
Tom Hvitved
853cbd8728
C#: Add dataflow tests exhibiting missing call-context based pruning
2019-10-16 13:39:35 +02:00
Tom Hvitved
8ba94140b1
C#: Use containing type instead of containing method in local function TRAP label
...
This is in order to handle the case where the enclosing callable of a local
function is a lambda expression.
2019-10-06 21:05:34 +02:00
Tom Hvitved
28021d6715
C#: Add test for local function in lambda
2019-10-06 20:50:24 +02:00
Tom Hvitved
b55e2948be
Merge pull request #1986 from calumgrant/cs/switch-cfg
...
C#: Fix CFG for switch statements where the default case is not the last
2019-10-04 16:54:04 +02:00
Calum Grant
48dee29620
Merge pull request #2021 from hvitved/csharp/local-not-disposed
...
C#: Refactor `cs/local-not-disposed` using data flow library
2019-10-03 15:21:06 +01:00
Calum Grant
eb893fbc5d
Merge pull request #2024 from hvitved/csharp/conversion-unbound
...
C#: Handle unbound types in conversion library
2019-10-02 15:36:38 +01:00
Tom Hvitved
413926f675
C#: Prepend enclosing method in local function TRAP labels
2019-10-01 10:25:18 +02:00
Calum Grant
ad8ae35c82
Merge pull request #1956 from hvitved/csharp/get-an-out-node
...
C#: Refactor `getAnOutNode()` predicate
2019-09-30 16:58:21 +01:00
Dave Bartolomeo
bcd987cdf1
Merge from master and share value numbering
2019-09-27 17:40:43 -07:00
Dave Bartolomeo
f76334c24a
C++, C#: Share unaliased SSA files between languages
...
Most of the C# diffs are from bringing those files in sync with the latest C++ files.
2019-09-27 13:46:42 -07:00
Dave Bartolomeo
5585ccd509
C#: Fix up after merge
2019-09-27 12:33:33 -07:00
Calum Grant
abdf7ce223
Merge pull request #2045 from AndreiDiaconu1/ircsharp-various-fixes
...
C# IR: Minor sanity fixes
2019-09-27 15:51:07 +01:00
Calum Grant
09f441a27e
Merge pull request #2009 from AndreiDiaconu1/ircsharp-rangeanalysis
...
C# IR: Add range analysis library
2019-09-27 14:27:41 +01:00
AndreiDiaconu1
f5b31ae9f5
Static fields
...
The translation of static fields now uses `VariableAddress` instead of `FieldAddress`. This fixes the logic as well as the "field address without qualifier address" sanity check.
2019-09-27 12:21:47 +01:00
AndreiDiaconu1
21513102f7
Compiler generated constructor
...
Fixed a problem when the translating the compiler generated constructors that caused some sanity errors (since they have no body, when translating the constructor block fragmentation happened). Fixed this by skipping the translation of the body, if it does not exist (when translating a function).
2019-09-27 12:20:39 +01:00
Dave Bartolomeo
9b8b364c8f
Merge from master
2019-09-26 22:15:02 -07:00
Dave Bartolomeo
c8d154e9cc
C#: Fix dump of IR types
2019-09-26 15:54:09 -07:00
Dave Bartolomeo
e30e163081
C#: Implement IRType
...
This commit implements the language-neutral IR type system for C#. It mostly follows the same pattern as C++, modified to fit the C# type system. All object references, pointers, and lvalues are represented as `IRAddress` types. All structs and generic parameters are implemented as `IRBlobType`. Function addresses get a single `IRFunctionAddressType`.
I had to fix a couple places in the original IR type system where I didn't realize I was still depending on language-specific types. As part of this, `CSharpType` and `CppType` now have a `hasUnspecifiedType()` predicate, which is equivalent to `hasType()`, except that it holds only for the unspecified version of the type. This predicate can go away once we remove the IR's references to the underlying `Type` objects.
All C# IR tests pass without modification, but only because this commit continues to print the name of `IRUnknownType` as `null`, and `IRFunctionAddressType` as `glval<null>`. These will be fixed separately in a subsequent commit in this PR.
2019-09-26 15:47:52 -07:00
AndreiDiaconu1
a7a5eaa23f
Address PR comments
2019-09-26 16:49:18 +01:00
AndreiDiaconu1
0999780d82
Address PR comments
2019-09-26 11:51:54 +01:00
AndreiDiaconu1
3a5140c0f5
Indexers and events
...
Added test for indexers.
Added support for event accesses and added test.
2019-09-26 11:46:16 +01:00
Tom Hvitved
7f18f35f31
C#: Update test
2019-09-25 21:20:45 +02:00