Age | Commit message (Collapse) | Author | Files | Lines |
|
Ifdef out useless code in JIT lowering
|
|
Fix RyuJIT assert 'emitCurIG != emitPrologIG'
|
|
Replace Unicode symbols with escape sequence in test source files
|
|
Update testing instructions
|
|
Don't print the "Some tests failed" message when _failCount is 0
|
|
Fix two Marshal tests to not hardcode OSX libc
|
|
Allow setting some startup flags outside Windows
|
|
Use uuid_generate_random instead of uuid_generate in CoCreateGuid
|
|
Fix OverflowException in b115557.cs GC test on systems with fewer than four processors/cores
|
|
Exit outerlevel build call if innerlevel exits with non-zero code
|
|
This occurs when the call-to-finally block exists as the last code in the function
(including any funclets). After we generate all "normal" code, we start over and
generate code for all the prologs and epilogs. In this case, we didn't reset the
emitForceNewIG global, which determines if we should force a new IG to be created
the next time code is generated. It is used for specifying no-GC regions. This fix
initializes it (along with emitNOGCIG) at the beginning of generating and prolog
or epilog.
|
|
Use InvariantCulture for parsing float arguments in GC stress tests
|
|
|
|
Fix for test break.
|
|
Enable Clang sanitizers for debug builds (address sanitizer, undefined behavior sanitizer and leak sanitizer)
|
|
In 64 bit builds Lowering::DecompNodeHelper does nothing so walking the trees is pointless. Profiling indicates that this accounts for 0.5% of the mscorlib crossgen time.
|
|
Fixed a bad merge issue.
|
|
|
|
|
|
Fix for a rotation transformation bug.
|
|
Sometime ago when the SystemVStructs branch was PRed into master a bad
merge has occured.
Some struct classification cleanup for native vs. managed struct layout
representation.
When classifying a native layout of the struct use the following
algorithm.
1. If the struct has special marshaling it has a native layout.
In such cases the classifier needs to use the native layout.
2. For structs with no native layout, the managed layout should be used
even if classified for the purposes of marshaling/PInvoke passing.
|
|
rotatedValueBitSize should be calculated from genActualType(rotatedValue->gtType) instead of rotatedValue->gtType.
I added a test that was failing with an assert because of this bug: rol32ushort.
|
|
Add USEARCH_DONE check to StartsWith in System.Globalization.Native
|
|
processors/cores
_allocPerThreadMB/2 can be larger than what fits into byte (because it's based on the number of processors/cores),
resulting in an OverflowException on those systems.
|
|
Otherwise they'd fail on cultures where '.' isn't used as a decimal separator.
|
|
|
|
Don't hardcode OSX path to libc.dylib, we can just use libc in the DllImport.
Fix the signature to return an IntPtr and do marshalling of the string correctly.
|
|
Those files don't have a BOM and can be misinterpreted.
|
|
Porting loader tests from internal legacy tree.
|
|
Fix typo in rootfs name
|
|
|
|
|
|
The StartsWith ICU wrapper was not checking the result of usearch_first
to see if it was USEARCH_DONE, indicating no match found. This has two
ramifications:
1. When there isn't a match, USEARCH_DONE (-1) gets passed in as the
textLength argument to ucol_openElements, which treats -1 as meaning
the string isn't null-terminated, and thus ends up walking the string
looking for non-ignorable collation elements. Our tests have been passing
because they've been using strings containing only non-ignorable
elements, and thus the first character checked causes us to bail and correctly
return false. If nothing else, this is an unnecessary perf overhead.
2. But on top of that if there are only ignorable collation elements
before the first null character in the string (e.g. if the string begins
with a null character), then because we told ICU that the string ended
at the first null character, it'll stop walking the string and return
a match. e.g. "\0bug".StartsWith("test") returns true incorrectly.
This commit simply adds a check for USEARCH_DONE to StartsWith.
EndsWith already has such a check.
|
|
Pass target string lengths to ICU on Unix
|
|
Remove an unsafe memory write in HeapFree
|
|
The PAL implementation of CoCreateGuid is currently using uuid_generate.
This will be based on high-quality randomness if available, otherwise it
falls back to an algorithm that incorporates the local ethernet MAC address
along with the current time and a pseudo-random generator. To avoid potential
privacy issues, this commit switches to using uuid_generate_random, which
instead falls back purely to a pseudo-random generator.
|
|
Allowing the GC-related flags to be set using properties passed into coreclr_initialize.
|
|
The PAL implementation of HeapFree assumes that the memory region always
have at least 4 bytes. Depending on the heap implementation, this is not
necessarily true, and can potentially cause memory corruption.
|
|
Fix buffer overrun in SetMscorlibPath
|
|
|
|
Our current ICU shims for StartsWith, EndsWith, IndexOf, and LastIndexOf
take the length of the source string but not the length of the target
string. This forces ICU to compute the length of the string by searching
for a null terminator. We can save those costs and be more accurate
around nulls in the target string by passing the known length in.
|
|
Merge changes from TFS
|
|
Enable Offline Generation of Text-Based Symbol Tables for NGEN Images
|
|
Fix build break on VS2015 Update 1
|
|
Fix Thread.Start while debugging bug on OSX.
|
|
Fix processing of unhandled exception in exception filter
|
|
The OSX exception logic is running on a separate thread from the one that the exception happened. The CatchHardwareExceptionHolder::IsEnabled used to check for h/w exception holders assumed it was running on the thread the exception/holders happened not the exception notification thread. Moved the h/w exception holder count to the CPalThread object instead of a TLS thread variable so the OSX exception code can check it given a CPalThread instance.
The main problem was that the stubmgr when creating a thread (for the start notification) put a breakpoint in ThePreStubPatch which is in the coreclr text section and because the h/w exception holder check was broken, it thought the breakpoint wasn't the debugger's and aborted the coreclr process. The other part of this fix is to put a h/w exception holder around the called to ThePreStubPatch in prestub.cpp.
The stubmgr's delegate invoke subclass used the wrong registers for Linux/OSX to read the "this" and parameter registers. Added the proper ifdefs and registers (ecx -> rdi, rdx -> rsi) for the Unix platforms.
On both Linux and OSX, the h/w exception holder check in the exception routing logic needed to check if the int3/trap is in DBG_DebugBreak so asserts always abort/core dump. Move DBG_DebugBreak to an assembly worker so the start/end address can be used for this check.
|
|
[tfs-changeset: 1547876]
|
|
Add missing packages for arm/arm64 cross build
|
|
|