platform/upstream/coreclr.git
5 years agoDelete dead/unused code (#21138)
Jan Kotas [Wed, 21 Nov 2018 16:23:30 +0000 (08:23 -0800)]
Delete dead/unused code (#21138)

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 420 (#21140)
dotnet-maestro[bot] [Wed, 21 Nov 2018 14:43:28 +0000 (14:43 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 420 (#21140)

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18570.17
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18570.17

5 years agoUpdate CoreSetup, PgoData to preview-27121-02, master-20181121-0042, respectively...
dotnet-maestro-bot [Wed, 21 Nov 2018 12:20:33 +0000 (04:20 -0800)]
Update CoreSetup, PgoData to preview-27121-02, master-20181121-0042, respectively (#21136)

5 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03420...
dotnet-maestro-bot [Wed, 21 Nov 2018 07:26:39 +0000 (23:26 -0800)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03420-02, preview-27121-02, preview.18571.1, preview-27120-04, master-20181120-0045, master-20181120-0044, respectively (#21045)

5 years agoMerge pull request #21129 from mmitche/sign-xstat
Matt Mitchell [Wed, 21 Nov 2018 02:13:59 +0000 (18:13 -0800)]
Merge pull request #21129 from mmitche/sign-xstat

Sign api-ms-win-core-xstate-l2-1-0.dll

5 years agoExpose generic UnsafeQueueUserWorkItem (#21125)
Stephen Toub [Wed, 21 Nov 2018 00:52:08 +0000 (19:52 -0500)]
Expose generic UnsafeQueueUserWorkItem (#21125)

5 years agoVectorize string.IndexOf(..., StringComparison.Ordinal) (#21076)
Ben Adams [Wed, 21 Nov 2018 00:50:26 +0000 (00:50 +0000)]
Vectorize string.IndexOf(..., StringComparison.Ordinal) (#21076)

* Vectorize string.IndexOf(..., StringComparison.Ordinal)

* Merge two IndexOf(..., int* matchLengthPtr)

* fix

2 callers expect value.Length == 0 to be tested first
3rd caller ReplaceCore doesn't allow a value.Length == 0 so moving it
first is ok

5 years agoVectorize Array.{Last}IndexOf<T>(...) for byte and char (#21116)
Ben Adams [Wed, 21 Nov 2018 00:44:56 +0000 (00:44 +0000)]
Vectorize Array.{Last}IndexOf<T>(...) for byte and char (#21116)

* Vectorize Array.IndexOf<T>(...) for byte and char

* Also LastIndexOf

5 years agoMerge pull request #21058 from CarolEidt/FixVZeroUpper
Carol Eidt [Tue, 20 Nov 2018 23:58:41 +0000 (15:58 -0800)]
Merge pull request #21058 from CarolEidt/FixVZeroUpper

Record AVX use for SIMD indirections

5 years agoSign api-ms-win-core-xstate-l2-1-0.dll
Matt Mitchell [Mon, 13 Aug 2018 18:15:05 +0000 (11:15 -0700)]
Sign api-ms-win-core-xstate-l2-1-0.dll
This file is only catalog signed in RS4.  Sign during the build. To achieve this copy the CRT binaries locally rather than referencing from the UCRT location directly.

5 years agoRemove remaining StringBuilder marshaling use from Corelib (#21120)
Stephen Toub [Tue, 20 Nov 2018 22:03:33 +0000 (17:03 -0500)]
Remove remaining StringBuilder marshaling use from Corelib (#21120)

* Remove remaining StringBuilder marshaling use from Corelib

- Unix globalization functions were using StringBuilder.  Replaced them with stackallocs, as the max sizes were all relatively small.
- Registry methods were declared to use StringBuilder, but these weren't actually used by corelib, and in fact, corefx isn't using StringBuilder with them either.  I've changed the definitions for now to use char[] instead (all the call sites are passing in null), and I'll fix up some corefx usage separately.
- Resource-related functions were using StringBuilder, and have been replaced with stackallocs, given reasonably small max buffer sizes.
- ExpandEnvironmentVariables was using a StringBuilder, but it's rewritten equivalent code in corefx is not.  For now I've copied the corefx function over to coreclr to replace the different implementation, but we can look at subsequently consolidating them into one.

* Address PR feedback

5 years agoRemove StringBuilder from HebrewNumber formatting (#21122)
Stephen Toub [Tue, 20 Nov 2018 20:59:37 +0000 (15:59 -0500)]
Remove StringBuilder from HebrewNumber formatting (#21122)

Rather than allocating a new StringBuilder, writing into that, getting its string, and then appending that string to another StringBuilder, we can just write directly to the original one.

5 years agoFix for #21011: propagate GTF_DONT_CSE on comma returns
Eugene Rozenfeld [Tue, 20 Nov 2018 01:08:06 +0000 (17:08 -0800)]
Fix for #21011: propagate GTF_DONT_CSE on comma returns

When a method returns a multi-reg struct, we set GTF_DONT_CSE on return local: https://github.com/dotnet/coreclr/blob/497419bf8f19c649d821295da7e225e55581cce9/src/jit/importer.cpp#L8783

Setting GTF_DONT_CSE blocks assertion propagation here:
https://github.com/dotnet/coreclr/blob/9d49bf1ec6f102b89e5c2885e8f9d3d77f2ec144/src/jit/assertionprop.cpp#L2845-L2848

In the test we have a synchronized method so we change the return node to
return a comma that include a call to HELPER.CORINFO_HELP_MON_EXIT.
If the rightmost comma expression doesn't have GTF_DONT_CSE,
assertion propagation is not blocked and we end up with this tree:

```
               [000040] -----+------                 /--*  CNS_INT   struct 0
               [000043] --C-G+------              /--*  COMMA     struct
               [000036] --C-G+------              |  \--*  CALL help void   HELPER.CORINFO_HELP_MON_EXIT
               [000032] L----+------ arg1 in x1   |     +--*  ADDR      long
               [000031] ----G+-N----              |     |  \--*  LCL_VAR   ubyte (AX) V03 tmp1
               [000033] -----+------ arg0 in x0   |     \--*  LCL_VAR   ref    V00 this
               [000041] -AC-G+------              *  COMMA     struct
               [000006] -----+-N----              |  /--*  LCL_VAR   struct V01 loc0
               [000039] -A---+------              \--*  ASG       struct (copy)
               [000037] D----+-N----                 \--*  LCL_VAR   struct V05 tmp3
```

Downstream phases can't handle struct zero return expressed as
```
               [000040] -----+------                 /--*  CNS_INT   struct 0
```

The fix is to propagate GTF_DONT_CSE to the rightmost comma expression
to block bad assertion propagation.

Fixes #21011.

5 years agoFixing up some issues with the HWIntrinsic test templates (#21104)
Tanner Gooding [Tue, 20 Nov 2018 20:01:25 +0000 (12:01 -0800)]
Fixing up some issues with the HWIntrinsic test templates (#21104)

* Updating the VectorNotSupportedTest to throw on failure

* Updating the HWIntrinsic test templates to check success on a per-scenario basis

* Regenerating the templated HWIntrinsic tests

5 years agoReplace custom AnsiToLower with more efficient ToLowerAsciiInvariant (#21121)
Stephen Toub [Tue, 20 Nov 2018 19:58:47 +0000 (14:58 -0500)]
Replace custom AnsiToLower with more efficient ToLowerAsciiInvariant (#21121)

Avoids all of the StringBuilder-related costs.

5 years agoDelete CORCOMPILE_IMPORT_TABLE_ENTRY (#21109)
Jan Kotas [Tue, 20 Nov 2018 18:56:12 +0000 (10:56 -0800)]
Delete CORCOMPILE_IMPORT_TABLE_ENTRY (#21109)

5 years agoLinux: FlushProcessWriteBuffers using membarrier when available (#20949)
Tom Deseyn [Tue, 20 Nov 2018 18:52:46 +0000 (19:52 +0100)]
Linux: FlushProcessWriteBuffers using membarrier when available (#20949)

* Linux: FlushProcessWriteBuffers using membarrier when available

* Ensure __NR_membarrier is defined for x64 portable build.

* Define __NR_membarrier on all portable architectures

5 years agoAdding some AggressiveInlining attributes to the Vector64/128/256 helper methods...
Tanner Gooding [Tue, 20 Nov 2018 15:56:52 +0000 (07:56 -0800)]
Adding some AggressiveInlining attributes to the Vector64/128/256 helper methods (#21111)

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 402 (#21118)
dotnet-maestro[bot] [Tue, 20 Nov 2018 14:53:47 +0000 (14:53 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 402 (#21118)

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18569.4
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18569.4

5 years agoImprove async iterator exception stack traces (#21103)
Stephen Toub [Tue, 20 Nov 2018 10:08:00 +0000 (05:08 -0500)]
Improve async iterator exception stack traces (#21103)

- The current stack trace prettying logic assumes that a method only has one StateMachineAttribute, but that's no longer true with async iterators, which (at least with the current implementation) can have both an AsyncStateMachineAttribute and an IteratorStateMachineAttribute.  As such, we change the prettying logic to look through all StateMachineAttributes rather than stopping at the first one.
- ManualResetValueTaskSourceCore.GetResult is responsible for propagating exceptions, but it's infrastructure and isn't particularly meaningful in a call stack.   Hide it from the stack trace, as we do for other such GetResult methods in Task and ValueTask.

5 years agoMake code in `getTargetMethodDesc` more reliable. (#21101)
Sergey Andreenko [Tue, 20 Nov 2018 05:53:14 +0000 (21:53 -0800)]
Make code in `getTargetMethodDesc` more reliable. (#21101)

* Make code in `getTargetMethodDesc` more reliable.

Fixes DevDiv_723667.

* change the condition to make sure that we do not have false true cases.

5 years agoformat spmi sources (#21094)
Sergey Andreenko [Tue, 20 Nov 2018 05:39:49 +0000 (21:39 -0800)]
format spmi sources (#21094)

We do not do it automatically because we do not change it often.

5 years ago Cleanup System.Reflection.Emit code and delete dead code (#21086)
Hugh Bellamy [Tue, 20 Nov 2018 05:31:30 +0000 (05:31 +0000)]
 Cleanup System.Reflection.Emit code and delete dead code (#21086)

* Cleanup System.Reflection.Emit code

* Delete dead code from System.Reflection.Emit

5 years agoUpdate xunit version to match corefx (#21098)
Jan Kotas [Tue, 20 Nov 2018 05:30:40 +0000 (21:30 -0800)]
Update xunit version to match corefx (#21098)

* Update xunit version to match corefx

Fixes https://github.com/dotnet/corefx/issues/33587

* Disabled outdated test

5 years agoAdd asserts for the types of the Span indexers. (#21037)
Carol Eidt [Tue, 20 Nov 2018 03:43:03 +0000 (19:43 -0800)]
Add asserts for the types of the Span indexers. (#21037)

Also, add a test for #20958

5 years agoFix search for headers and libraries via LLVM_HOME (#21084)
Omair Majid [Tue, 20 Nov 2018 00:32:13 +0000 (19:32 -0500)]
Fix search for headers and libraries via LLVM_HOME (#21084)

Commit b89e2305 (PR #18873) renamed WITH_LLDB_LIBS to LLDB_LIB_DIR and
WITH_LLDB_INCLUDES to LLDB_INCLUDE_DIR. But it forgot to update the
usage of these variables in some find_library and find_path calls.

As a result, setting LLVM_HOME is no longer enough to compile coreclr on
platforms with non-standard locations for lldb. This commit fixes that.

5 years agoFix Getting Max Japanese Era (#21087)
Tarek Mahmoud Sayed [Mon, 19 Nov 2018 20:50:33 +0000 (12:50 -0800)]
Fix Getting Max Japanese Era (#21087)

We were using the ICU API ucal_getLimit and askin gto get the maximum value of the Japanese eras. it looks this API is just return the era matching the current system clock which prevent returning any future defined era in the system (which ICU 63.1 can support with some environment variable).
We raised the issue to the ICU owners but would be better just to get the era of Gregorian year 9999 which always should return the max era anyway.

5 years agoDisable stale sockets test (#21083)
Stephen Toub [Mon, 19 Nov 2018 20:45:25 +0000 (15:45 -0500)]
Disable stale sockets test (#21083)

5 years agoCleanup RtType.cs code
Hugh Bellamy [Sat, 17 Nov 2018 19:05:39 +0000 (19:05 +0000)]
Cleanup RtType.cs code

5 years agoFix Type.GetInterface for null namespace and non-null interface namespace
Hugh Bellamy [Sat, 17 Nov 2018 18:45:30 +0000 (18:45 +0000)]
Fix Type.GetInterface for null namespace and non-null interface namespace

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 385 (#21082)
dotnet-maestro[bot] [Mon, 19 Nov 2018 15:23:43 +0000 (15:23 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 385 (#21082)

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18568.1
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18568.1

5 years agoAdd headers to crossgen, cee_crossgen, corzap_crossgen vcxproj files (#20082)
Jacek Blaszczynski [Mon, 19 Nov 2018 11:29:11 +0000 (12:29 +0100)]
Add headers to crossgen, cee_crossgen, corzap_crossgen vcxproj files (#20082)

5 years agoMake type comparisons more general purpose (#20940)
Michal Strehovský [Mon, 19 Nov 2018 08:23:22 +0000 (09:23 +0100)]
Make type comparisons more general purpose (#20940)

This has two parts:

## Part 1
CoreRT represents native type handles differently from CoreCLR - on CoreCLR, `RuntimeTypeHandle` is a wrapper over `RuntimeType` and RyuJIT is aware of that. On CoreRT, `RuntimeTypeHandle` wraps the native type handle, not a `RuntimeType`.

The knowledge is hardcoded in importer when importing the sequence "ldtoken foo / call Type.GetTypeFromHandle" - importer just removes the call and bashes the result of ldtoken to be a reference type. CoreRT had to avoid reporting `Type.GetTypeFromHandle` as an intrinsic because of that.

I'm adding another helper that lets RyuJIT avoid hardcoding that knowledge. Instead of just bashing the return type, we swap the helper call.

## Part 2

Native type handle equality checks need to go through a helper, unless the EE side says it's okay to compare native type handles directly.

5 years agoSingle pass Vectorize Span<byte>.IndexOfAny(..., ReadOnlySpan<byte>) for 2,3 lengths...
Ben Adams [Mon, 19 Nov 2018 06:18:57 +0000 (06:18 +0000)]
Single pass Vectorize Span<byte>.IndexOfAny(..., ReadOnlySpan<byte>) for 2,3 lengths (#20738)

5 years agoAdd headers to all md*, v3binder*, and ceefgen vcxproj (#20163)
Jacek Blaszczynski [Sun, 18 Nov 2018 20:08:31 +0000 (21:08 +0100)]
Add headers to all md*, v3binder*, and ceefgen vcxproj (#20163)

Work toward #14884

5 years agoAdd ICustomMarshaler tests (#19195)
Hugh Bellamy [Sun, 18 Nov 2018 18:31:28 +0000 (18:31 +0000)]
Add ICustomMarshaler tests (#19195)

* Add ICustomMarshaler tests

5 years agoUpdate dependency files (#21067)
dotnet-maestro[bot] [Sun, 18 Nov 2018 14:50:14 +0000 (14:50 +0000)]
Update dependency files (#21067)

* Update dependencies from https://github.com/dotnet/arcade build 379

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18566.6
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18566.6

* Update dependencies from https://github.com/dotnet/arcade build 382

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18567.1
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18567.1

5 years ago Fix incorrect exception thrown in Marshal.ReleaseComObject(null) (#21072)
Hugh Bellamy [Sun, 18 Nov 2018 04:08:27 +0000 (04:08 +0000)]
 Fix incorrect exception thrown in Marshal.ReleaseComObject(null) (#21072)

5 years agoRemoving the legacy helper intrinsics and adding tests for their replacements (#20994)
Tanner Gooding [Sat, 17 Nov 2018 18:24:58 +0000 (10:24 -0800)]
Removing the legacy helper intrinsics and adding tests for their replacements (#20994)

* Removing helper intrinsics from the x86 APIs in S.P.Corelib

* Removing JIT support for the removed x86 helper intrinsics

* Removing the x86 HardwareIntrinsics tests for the removed helper APIs

* Fixing up existing usages to no longer use the removed x86 helper intrinsics

* Skip CoreFX tests dependent on the removed x86 helper intrinsics

* Adding a GenerateTests.csx and templates for the new shared helper intrinsics

* Generating the new shared helper intrinsics from their templates

* Disabling some tests for arm and arm64 that are failing due to an assert

5 years agoForce Unicode in test_location parameter in delete_existing_wrappers() (#21056)
Egor Chesakov [Sat, 17 Nov 2018 18:20:13 +0000 (10:20 -0800)]
Force Unicode in test_location parameter in delete_existing_wrappers() (#21056)

5 years agoOptimization: Further reduce allocations in GetCustomAtttributes() paths (#20795)
Nick Craver [Sat, 17 Nov 2018 08:11:54 +0000 (03:11 -0500)]
Optimization: Further reduce allocations in GetCustomAtttributes() paths (#20795)

* Remove PseudoCustomAttribute allocations

Inside CustomAttribute, PseudoCustomAttribute is the mechanism used to return Attribute instances for what are really flags and such underneath in most cases. This is just an implentation detail, but this detail creates an intermediate array just for passing things around inside CustomAttribute...that's not necessary. This replaces the Attribute[] allocations with the ListBuilder<Attribute> struct for accumulating and relaying this attributes to parent methods.

Many overloads had a lot of duplicate coalescing code on this path as well...DRYed up that series of methods.

This change reduces allocation overhead for all calls by 40 bytes. In the case of a miss where none would be returned (e.g. .GetCustomAttributes<Attribute>() on a non-attributed class), this reduces allocations down to zero.

* CustomAttribute: split GetCustomAttributes into total and additive use cases

The split here was simple, but allocated an extra intermediate array for each parent type when searching for attributes in the inheritance case. Instead of doing that, we now move that to the second use case exclusively (which uses/returns the array created). The other use case adds to the ListBuilder<object> struct to accumulate through the inheritance hierarchy crawl (rather than an after-the-fact copy).

Note some parameter removals on the filter side...those weren't used already (and got in the way of this change).

* CustomAttributes: Cleanup of unused ops

Just removing the cruft that isn't actually used in here anymore (some of it in quite some time). Trivial amounts of speed gain, but every little bit helps!

* Param typo and red passing for GetCombinedList()

* Assume zero pseudo attributes by default (the most likely case)

Thsi eats the resize on the > 1 case, but that's so rare it's a net win to start with 0 here.

* Pseudo attributes: use out instead of return

A bit if a performance boost from the struct copy removal

* Pseudo attributes: switch to out everywhere and remove uneeded code paths

In relation to #20795, these old calls seem to be for consistency but they're not likely to change and a comment (I think) accomplishes the same goal with less code...so here's a commit demonstrating it.

* Comment spacing for pseudo attribute fetching

Make it clear that pseudo attributes are a distinct thing (e.g. why not in *this* method) than the return line.

5 years agoExclude GC stress failure test. (#21059)
Sergey Andreenko [Sat, 17 Nov 2018 01:38:00 +0000 (17:38 -0800)]
Exclude GC stress failure test. (#21059)

5 years agoExclude tests from GCStress failing due to 21044 (#21060)
Sergey Andreenko [Sat, 17 Nov 2018 00:51:12 +0000 (16:51 -0800)]
Exclude tests from GCStress failing due to 21044 (#21060)

5 years agoMerge pull request #21004 from BruceForstall/UpdateRuntestHelp
Bruce Forstall [Sat, 17 Nov 2018 00:42:58 +0000 (16:42 -0800)]
Merge pull request #21004 from BruceForstall/UpdateRuntestHelp

Update help output of runtest.cmd/sh

5 years agoAdd PInvoke/Decimal tests (#19301)
Zeng Jiang [Sat, 17 Nov 2018 00:25:43 +0000 (08:25 +0800)]
Add PInvoke/Decimal tests (#19301)

* Add PInvoke/Decimal Tests

* Remove tests that fail on both .NET Framework and .NET Core.

* Refactor away the Windows-only headers.

* Make Decimal tests build on Linux.

* Remove some dead code.

* Clean up formatting.

* Don't run Decimal <--> Currency tests off-Windows.

* Make calling conventions and parameter/return marshalling more explicit

5 years agoDelete unnecessary StackCrawlMarks in RtFieldInfo (#21054)
Jan Kotas [Fri, 16 Nov 2018 21:00:41 +0000 (13:00 -0800)]
Delete unnecessary StackCrawlMarks in RtFieldInfo (#21054)

Left over from Code Access Security

Fixes #20965

5 years agoFix unloadability races (#21024)
Jan Vorlicek [Fri, 16 Nov 2018 18:08:29 +0000 (19:08 +0100)]
Fix unloadability races (#21024)

* Fix LoaderAllocator::AllocateHandle

When another thread wins the race in growing the handle table, the code
was not refreshing the slotsUsed local to the new up to date value. This
was leading to overwriting / reusing a live handle.
This change fixes it.

* Embed ThreadLocalBlock in Thread

Instead of allocating ThreadLocalBlock dynamically, embed it in the
Thread. That solves race issue between thread destruction and
LoaderAllocator destruction. The ThreadLocalBlock could have been
deleted during Thread shutdown while the LoaderAllocator's destruction
would be working with it.

5 years agoFix Formatting Japanese First Year on Linux (#21039)
Tarek Mahmoud Sayed [Fri, 16 Nov 2018 17:02:02 +0000 (09:02 -0800)]
Fix Formatting Japanese First Year on Linux (#21039)

When formatting the first year with Gannen symbol we are checking if the year is followed by single quote which this is the case on Windows but it is not neccessay the case on Linux

5 years agoRecord AVX use for SIMD indirections
Carol Eidt [Fri, 16 Nov 2018 17:01:57 +0000 (09:01 -0800)]
Record AVX use for SIMD indirections

5 years agoAdd workaround for https://github.com/dotnet/coreclr/issues/21051
Jan Kotas [Fri, 16 Nov 2018 07:11:28 +0000 (23:11 -0800)]
Add workaround for https://github.com/dotnet/coreclr/issues/21051

5 years agoAdd explicit signatures for Span indexer
Jan Kotas [Fri, 16 Nov 2018 06:33:52 +0000 (22:33 -0800)]
Add explicit signatures for Span indexer

Fixes #21032 and #20958

5 years agoEliminate CMAKE dependency when not required (#21040)
Dan Moseley [Fri, 16 Nov 2018 15:14:11 +0000 (07:14 -0800)]
Eliminate CMAKE dependency when not required (#21040)

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 365 (#21052)
dotnet-maestro[bot] [Fri, 16 Nov 2018 14:53:21 +0000 (14:53 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 365 (#21052)

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18565.9
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18565.9

5 years agoAdd simple tests for ArrayWithOffset marshaling. (#21013)
Jeremy Koritzinsky [Fri, 16 Nov 2018 07:48:16 +0000 (23:48 -0800)]
Add simple tests for ArrayWithOffset marshaling. (#21013)

* Add simple tests for ArrayWithOffset marshaling.

* PR Feedback.

* Fix visibility

* Fix DllImport library name

5 years agoAdd Interop/PInvoke/Attributes tests (#19107)
Zeng Jiang [Fri, 16 Nov 2018 07:47:51 +0000 (15:47 +0800)]
Add Interop/PInvoke/Attributes tests (#19107)

* Add Interop/PInvoke/Attributes tests

* Fix PR comments

* Fix compile warnings

* Remove comment

* Clean up test files to match current build system.

* Fix up test and make it windows only (as FEATURE_LCID is only enabled on Windows)

* Fixed string const issues.

5 years agoAdd PInvoke/CriticalHandles tests (#19297)
Zeng Jiang [Fri, 16 Nov 2018 07:46:51 +0000 (15:46 +0800)]
Add PInvoke/CriticalHandles tests (#19297)

* Add PInvoke/CreticalHandles tests

* Bring up to current infrastructure.

* Fix ReverseTest.

5 years agoDelete HAS_FLS_SUPPORT and related code (#21035)
Jan Kotas [Fri, 16 Nov 2018 03:35:35 +0000 (19:35 -0800)]
Delete HAS_FLS_SUPPORT and related code (#21035)

5 years agoFixed signatures of ref readonly methods in JIT ETW events (#20981)
szehetner [Fri, 16 Nov 2018 02:14:03 +0000 (03:14 +0100)]
Fixed signatures of ref readonly methods in JIT ETW events (#20981)

* fixed ETW method signature of ref readonly methods

* added type token

* extract method for printing classes

* fixed optional_modifier, use CorSigUncompressToken_EndPtr

5 years agoAdd PInvoke/SafeHandles tests (#19330)
Zeng Jiang [Fri, 16 Nov 2018 01:49:41 +0000 (09:49 +0800)]
Add PInvoke/SafeHandles tests (#19330)

* Add PInvoke/SafeHandles tests

* Fix compile warnings - include header file with relative path

* Run SafeHandle tests only on Windows. The tests are very Windows-centric, so we'd have to do quite a bit of a re-write to get them working xplat.

* Fix CMake project references.

* Fix interface CMakeLists project reference.

* Add casts for string literals.

* Use LPOLESTR and the W macro instead of OLECHAR* cast and L prefix.

5 years agoAdd Tests for VBByRefStr marshalling (#20982)
Jeremy Koritzinsky [Fri, 16 Nov 2018 01:16:11 +0000 (17:16 -0800)]
Add Tests for VBByRefStr marshalling (#20982)

* Add tests for VBByRefStr marshalling.

* Compile native for VBByRefStr on all platforms.

* Fix encoding.

* PR Feedback.

* Fix PInvokeDefs file.

* Fix visibility

5 years agoAdd tests for marshalling as VARIANT_BOOL or VARIANT (#20856)
Jeremy Koritzinsky [Fri, 16 Nov 2018 01:14:35 +0000 (17:14 -0800)]
Add tests for marshalling as VARIANT_BOOL or VARIANT (#20856)

* Add native side impl for VARIANT_BOOL test.

* More bool native code.

* Add VariantBool marshalling tests.

* Add infrastructure for tests for object -> VARIANT marshalling.

* Add variant tests for all built-in types.

* Clean up Variant tests.

* Add test for passing custom structure as object.

* Add test for VARIANT_BOOL byref.

* Added byref tests for VARIANT marshalling.

* Add field marshalling tests for VARIANT.

* Move ByValue tests to not have two sources of truth.

* Make managed code the one source of truth.

* Clean up formatting/unused methods.

* Clean up some whitespace issues.

* Add tests for BStrWrapper and CurrencyWrapper marshalling.

* Add UnknownWrapper tests.

* Add a test for VariantWrapper and PInvoke.

* PR Feedback.

* Remove ToString.

* Fix visibility

* Fix MSBuild import path.

* Clean up Variant tests.

5 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03415...
dotnet-maestro-bot [Fri, 16 Nov 2018 00:37:39 +0000 (16:37 -0800)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03415-01, preview-27115-03, preview.18565.4, preview-27115-04, master-20181115-0045, master-20181115-0044, respectively (#21005)

5 years agoAdd PInvoke/SizeParamIndex tests (#19348)
Zeng Jiang [Fri, 16 Nov 2018 00:31:38 +0000 (08:31 +0800)]
Add PInvoke/SizeParamIndex tests (#19348)

* Add PInvoke/SizeParamIndex tests

* Fix compile warnings

* First pass cleaning up native code.

* Get ParamSizeIndex tests working xplat (excluding the BSTR array tests)

* Fix incorrect definition of ULONG off-windows.

* Disable reverse-PInvoke throwing test off-Windows.

5 years agoStop using Hostx86/arm crossgen in crossgen_comparison scenario (#21021)
Egor Chesakov [Thu, 15 Nov 2018 22:53:08 +0000 (14:53 -0800)]
Stop using Hostx86/arm crossgen in crossgen_comparison scenario (#21021)

* And also create Linux arm64 crossgen_comparison scenarios in netci.groovy

5 years agoAdd PInvoke/DllImportpath tests (#19270)
Zeng Jiang [Thu, 15 Nov 2018 22:51:02 +0000 (06:51 +0800)]
Add PInvoke/DllImportpath tests (#19270)

* Add PInvoke/DllImportpath tests

* Refactor test to current toolset and remove Windows-only Path API searching.

* Remove explicit calling convention from managed and add correct convention to test.

* Get environment test passing on Unix.

* Update test to pass off-Windows.

* Include feature/platform defines in tests.

* Fix environment test (again).

* Remove zero-width character that's breaking CI

* Fix zero-width character I missed.

* Remove invalid parens around LD_LIBRARY_PATH

* Ensure the path added to the LD_LIBRARY_PATH exists before the test starts.

* Combine all DllImportPath CMakeLists.txt files into one file.

* Include clr.coreclr.props when also including clr.defines.targets so we get the feature defines correctly as well.

* Disable unicode test for our OSX 10.12 CI builds.

5 years agoAdd tests for ANSI BSTRs (#20985)
Jeremy Koritzinsky [Thu, 15 Nov 2018 22:50:00 +0000 (14:50 -0800)]
Add tests for ANSI BSTRs (#20985)

* Add tests for ANSI BSTRs

* Fix signed/unsigned mismatch in comparisons. Add xplatform include

* Use regular memcpy

* Enable ANSI BSTR off-windows.

* Also enable UnmanagedType.TBStr off-Windows since both BStr variants are available off-Windows.

* Make sure the AnsiBSTR marshaller is hooked up off-Windows.

* Remove a few more ifdefs I missed.

* remove ifdefs around binder definitions and the C# stub helpers.

* PR Feedback.

* Add xplat ARRAYSIZE macro

* Move xplat ARRAYSIZE to platformdefines.h

5 years agoMerge pull request #21008 from briansull/new-toolset
Brian Sullivan [Thu, 15 Nov 2018 22:45:02 +0000 (14:45 -0800)]
Merge pull request #21008 from briansull/new-toolset

Fix warnings from the new toolset

5 years agoFixes for Azure DevOps official build (#21017)
Morgan Brown [Thu, 15 Nov 2018 22:23:58 +0000 (14:23 -0800)]
Fixes for Azure DevOps official build (#21017)

* Fix endpoint for internal jobs

 Fix external vs internal queues

 Properly quote scenarios argument to msbuild

 Increase queue timeout since most P1 jobs couldn't finish in time

5 years agoAllow rune enumeration from string and ROS<char> (#21007)
Levi Broderick [Thu, 15 Nov 2018 21:56:55 +0000 (13:56 -0800)]
Allow rune enumeration from string and ROS<char> (#21007)

5 years agoAdd PInvoke/Array tests (#19266)
Zeng Jiang [Thu, 15 Nov 2018 21:32:25 +0000 (05:32 +0800)]
Add PInvoke/Array tests (#19266)

* Add PInvoke/Array tests

* Fix compile warnings

* Get tests passing on Windows again.

* Change error_t type to work xplat.

* Change error_t in types.h as well

* Clean up build slightly.

* PR feedback and native test code refactoring.

* Clean up header.

* Add a xplat implementation of _itoa_s for our tests.

* CHAR -> char

* Make calling convention cdecl to avoid stdcall mangling.

* Make return test native code cdecl as well (missed it before).

* Fix bug in platformdefines _itoa_s

* Return early in TP_itoX_s when num == 0

5 years agoUpdate CrstTypeTool to produce spaces (#21029)
David Wrighton [Thu, 15 Nov 2018 20:06:08 +0000 (12:06 -0800)]
Update CrstTypeTool to produce spaces (#21029)

5 years agoChanged back to use m_filtered
Brian Sullivan [Thu, 15 Nov 2018 19:32:47 +0000 (11:32 -0800)]
Changed back to use m_filtered

5 years agoCode Review feedback
Brian Sullivan [Thu, 15 Nov 2018 19:03:59 +0000 (11:03 -0800)]
Code Review feedback

5 years agoCombine ExcludeList in AltJit scenarios for both host and altjit archs (#21018)
Egor Chesakov [Thu, 15 Nov 2018 18:43:05 +0000 (10:43 -0800)]
Combine ExcludeList in AltJit scenarios for both host and altjit archs (#21018)

* Add -altjitarch command line argument in tests/runtest.cmd and -altjit_arch in tests/runtest.py

* Specify altjitarch in for x86_arm_altjit and x64_arm64_altjit jobs in netci.groovy

* Use AltJitArch MSBuild variable in tests/issues.targets to exclude tests based on either BuildArch or AltJitArch since both two JITs are running in altjit scenarios

5 years agoAdd PInvoke/Miscellaneous tests (#19326)
Zeng Jiang [Thu, 15 Nov 2018 18:10:25 +0000 (02:10 +0800)]
Add PInvoke/Miscellaneous tests (#19326)

* Add PInvoke/Miscellaneous tests

* Clean up HandleRef test.

5 years agoUpdate Unicode data and optimize CharUnicodeInfo indexes (#20983)
Pent Ploompuu [Thu, 15 Nov 2018 17:04:19 +0000 (19:04 +0200)]
Update Unicode data and optimize CharUnicodeInfo indexes (#20983)

* Update Unicode data and optimize CharUnicodeInfo indexes

* Add new GenUnicodeProp to tools

* Add licence headers

* Add big-endian support

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 347 (#21023)
dotnet-maestro[bot] [Thu, 15 Nov 2018 15:08:32 +0000 (15:08 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 347 (#21023)

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18564.20
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18564.20

5 years agoAllow supressing exceptions in diamond inheritance cases (#20458)
Michal Strehovský [Thu, 15 Nov 2018 13:08:27 +0000 (14:08 +0100)]
Allow supressing exceptions in diamond inheritance cases (#20458)

5 years agoRe-enable optimizations in interop helper functions. (#21016)
Aaron Robinson [Thu, 15 Nov 2018 07:37:45 +0000 (23:37 -0800)]
Re-enable optimizations in interop helper functions. (#21016)

5 years agoFix invalid tests for COM native server (#21012)
Aaron Robinson [Thu, 15 Nov 2018 02:54:12 +0000 (18:54 -0800)]
Fix invalid tests for COM native server (#21012)

5 years agoDisable COM tests being CrossGen'd (#21010)
Aaron Robinson [Thu, 15 Nov 2018 02:52:35 +0000 (18:52 -0800)]
Disable COM tests being CrossGen'd (#21010)

* Disable running CrossGen on COM tests since the CrossGen tool doesn't support app manifests on Windows.

* Update ObjectStackAllocation test to use MSBuild property to disable CrossGen support.

5 years agoAdd test for marshalling ArgIterators on Windows (#20888)
Jeremy Koritzinsky [Wed, 14 Nov 2018 23:18:23 +0000 (15:18 -0800)]
Add test for marshalling ArgIterators on Windows (#20888)

* Add (windows-only) tests for __arglist and ArgIterator marshalling.

* Add explicit calling convention notation to pinvokes.

* Add license header

* Update VarargsTest.cs

* Fix calling conventions.

* PR Feedback

* Add explicit calling convention.

* Update VarargsNative.cpp

* Don't reference System.Private.Corelib directly

5 years agoUse correct printf type specifier
Brian Sullivan [Wed, 14 Nov 2018 22:20:26 +0000 (14:20 -0800)]
Use correct printf type specifier

5 years agoJit changes from the desktop Toolset Update
Brian Sullivan [Wed, 14 Nov 2018 21:40:55 +0000 (13:40 -0800)]
Jit changes from the desktop Toolset Update

5 years agoUpdate CoreFX-in-CoreCLR testing instructions (#21002)
Bruce Forstall [Wed, 14 Nov 2018 21:52:34 +0000 (13:52 -0800)]
Update CoreFX-in-CoreCLR testing instructions (#21002)

Update to reflect changes in the repo, and fix various formatting issues.

5 years agoFix arm64 PUTARG_STK(contained OBJ(contained LCL_FLD_ADDR)). (#20995)
Sergey Andreenko [Wed, 14 Nov 2018 21:46:44 +0000 (13:46 -0800)]
Fix arm64 PUTARG_STK(contained OBJ(contained LCL_FLD_ADDR)). (#20995)

* add a repro test

* Fix the issue.

Do not mark `GT_OBJ` as containned for arm64.
We already do the same in `NewPutArg`.

5 years agoFix warnings because of Bool incompatibality
Swaroop Sridhar [Wed, 14 Nov 2018 03:21:13 +0000 (19:21 -0800)]
Fix warnings because of Bool incompatibality

Fix a compile warning because of bool vs BOOL incompatibality.
Fixes a build break in the new VS compiler.

5 years agoUpdate help output of runtest.cmd/sh
Bruce Forstall [Wed, 14 Nov 2018 19:14:46 +0000 (11:14 -0800)]
Update help output of runtest.cmd/sh

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 327 (#21000)
dotnet-maestro[bot] [Wed, 14 Nov 2018 15:29:51 +0000 (15:29 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 327 (#21000)

This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18563.21
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18563.21

5 years agoCleanup on the new Math APIs (#20993)
Tanner Gooding [Wed, 14 Nov 2018 15:20:49 +0000 (07:20 -0800)]
Cleanup on the new Math APIs (#20993)

* Updating the cached HAVE_COMPATIBLE_ILOGB0_EXITCODE and HAVE_COMPATIBLE_ILOGBNAN_EXITCODE to 1

* Fixing MaxMagnitude and MinMagnitude to correctly handle the case when ax and ay are equal

5 years agoUpdate CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview-27113-06, preview...
dotnet-maestro-bot [Wed, 14 Nov 2018 13:02:03 +0000 (05:02 -0800)]
Update CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview-27113-06, preview.18563.5, preview-27114-01, master-20181114-0045, master-20181114-0044, respectively (#20950)

5 years agoMerge pull request #20961 from briansull/const-eval-fix
Brian Sullivan [Wed, 14 Nov 2018 03:21:07 +0000 (19:21 -0800)]
Merge pull request #20961 from briansull/const-eval-fix

Improve CanEvalForConstantArgs

5 years agoUndo a workaround added in #20442.
Eugene Rozenfeld [Tue, 13 Nov 2018 23:35:05 +0000 (15:35 -0800)]
Undo a workaround added in #20442.

5 years agoFix for bug 20499.
Eugene Rozenfeld [Sat, 10 Nov 2018 00:53:49 +0000 (16:53 -0800)]
Fix for bug 20499.

When the jit is copying a struct-typed return to the return local in a synchronous method on arm64,
it ends up invoking an importer utility outside the importer, where impTreeLast is not set.

The call sequence is
fgMorphBlocks --> gtNewTempAssign --> impAssignStruct --> impAssignStructPtr --> impAppendTree

When impAssignStructPtr sees GT_COMMA src nodes, it unwraps them and inserts additional statements.
The fix is to pass an insertion point statement through this call chain to prevent impAssignStruct
and impAssignStructPtr from calling impAppendTree outside of the importer.

5 years agoDisable R2R for object stack allocation tests.
Eugene Rozenfeld [Tue, 13 Nov 2018 21:15:12 +0000 (13:15 -0800)]
Disable R2R for object stack allocation tests.

Object stack allocation currently doesn't work in R2R mode
because we lower R2R allocations to helper calls in the importer.
That will be fixed but for now we need to disable R2R for these tests.

Fixes #20977.

5 years agoInitial commit for System.Text.Rune (#20935)
Levi Broderick [Wed, 14 Nov 2018 01:05:02 +0000 (17:05 -0800)]
Initial commit for System.Text.Rune (#20935)

This type represents a Unicode scalar value ([ U+0000..U+D7FF ], inclusive; and [ U+E000..U+10FFFF ], inclusive). The primary scenario is for having a consistent representation of Unicode data regardless of the underlying input encoding type, including abstracting away surrogate code points.

5 years agoFix CanEvalForConstantArgs(VNFunc vnf)
Brian Sullivan [Mon, 12 Nov 2018 23:36:18 +0000 (15:36 -0800)]
Fix CanEvalForConstantArgs(VNFunc vnf)

Change the default return value for new GenTree nodes to false

This allows new nodes to be added without immediately implementing
the compile time folding logic.

Added method header comment for CanEvalForConstantArgs

5 years agon_heaps needs to be initialized before init_static_data is called (#20968)
Maoni Stephens [Tue, 13 Nov 2018 23:17:18 +0000 (15:17 -0800)]
n_heaps needs to be initialized before init_static_data is called (#20968)

5 years agoSpecify version of xunit.console.dll during the custom build (#20975)
Egor Chesakov [Tue, 13 Nov 2018 22:37:04 +0000 (14:37 -0800)]
Specify version of xunit.console.dll during the custom build (#20975)

* Use stable Xunit v2.4.1
* Use xunit.console.dll with specified assembly version to avoid issues with Ready2Run jobs
* Update comment regarding building xunit with specified version in tests/runtest.py

5 years agoAdd tests for AsAny Marshalling (#20963)
Jeremy Koritzinsky [Tue, 13 Nov 2018 22:13:57 +0000 (14:13 -0800)]
Add tests for AsAny Marshalling (#20963)

* Copy over tests from .NET Framework.

* Convert tests to use CoreCLRTestLibrary. Clean up tests that weren't self-consistent.

* Pass in context for non best-fit-mapping tests.

* Move around/group declarations.

* Clean up typedef names/usage.

* Fix signedness.

* Use ptrdiff_t and size_t instead of C99 types.

* Fix printf specifiers

* Remove unneeded now duplicate typedef