diff --git a/src/SourceBuild/tarball/patches/runtime/0001-PR-76471.patch b/src/SourceBuild/tarball/patches/runtime/0001-PR-76471.patch deleted file mode 100644 index 2efc706d1..000000000 --- a/src/SourceBuild/tarball/patches/runtime/0001-PR-76471.patch +++ /dev/null @@ -1,570 +0,0 @@ -From 371d1e5b10b3632289b5944fb36bdfd3c032b58e Mon Sep 17 00:00:00 2001 -From: Charles Stoner <10732005+cston@users.noreply.github.com> -Date: Tue, 20 Sep 2022 14:44:06 -0700 -Subject: [PATCH 1/6] Patches for scoped locals - -https://github.com/dotnet/roslyn/pull/64093 - -This change enforced that `scoped` on a local set the escape scope to -the current block where previously it was incorrectly setting to the -containing method. ---- - .../Reflection/RuntimeMethodInfo.CoreCLR.cs | 2 ++ - .../System/Reflection/DynamicInvokeInfo.cs | 14 ++++++++--- - .../src/System/Reflection/MethodBase.cs | 2 ++ - .../Reflection/RuntimeConstructorInfo.cs | 4 ++++ - .../System/Reflection/RuntimeMethodInfo.cs | 2 ++ - .../src/System/Text/Json/JsonHelpers.cs | 2 +- - .../Utf8JsonWriter.WriteProperties.String.cs | 24 +++++++++++-------- - 7 files changed, 36 insertions(+), 14 deletions(-) - -diff --git a/eng/Versions.props b/eng/Versions.props -index fe8aac648cd..2f16902347b 100644 ---- a/eng/Versions.props -+++ b/eng/Versions.props -@@ -52,7 +52,7 @@ - -- 4.4.0-3.22452.8 -+ 4.4.0-3.22472.1 - 0.2.0 - - 8.0.100-alpha.1.22462.3 -diff --git a/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.CoreCLR.cs -index c55ee607da773..4e1246b481b10 100644 ---- a/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.CoreCLR.cs -+++ b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.CoreCLR.cs -@@ -316,7 +316,9 @@ public override MethodImplAttributes GetMethodImplementationFlags() - Span shouldCopyBackParameters = new(ref argStorage._copyBack0, 1); - - StackAllocatedByRefs byrefStorage = default; -+#pragma warning disable 8500 - IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; -+#pragma warning restore 8500 - - CheckArguments( - copyOfParameters, -diff --git a/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs b/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs -index 234f8a16e9c5c..cc3d8c74a60b7 100644 ---- a/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs -+++ b/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs -@@ -235,11 +235,15 @@ public DynamicInvokeInfo(MethodBase method, IntPtr invokeThunk) - StackAllocedArguments argStorage = default; - StackAllocatedByRefs byrefStorage = default; - -+#pragma warning disable 8500 - CheckArguments(ref argStorage._arg0!, (ByReference*)&byrefStorage, parameters, binderBundle); -+#pragma warning restore 8500 - - try - { -+#pragma warning disable 8500 - ret = ref RawCalliHelper.Call(InvokeThunk, (void*)methodToCall, ref thisArg, ref ret, &byrefStorage); -+#pragma warning restore 8500 - DebugAnnotations.PreviousCallContainsDebuggerStepInCode(); - } - catch (Exception e) when (wrapInTargetInvocationException) -@@ -268,7 +272,9 @@ public DynamicInvokeInfo(MethodBase method, IntPtr invokeThunk) - IntPtr* pStorage = stackalloc IntPtr[2 * argCount]; - NativeMemory.Clear(pStorage, (nuint)(2 * argCount) * (nuint)sizeof(IntPtr)); - -- ByReference* pByRefStorage = (ByReference*)(pStorage + argCount); -+#pragma warning disable 8500 -+ void* pByRefStorage = (ByReference*)(pStorage + argCount); -+#pragma warning restore 8500 - - RuntimeImports.GCFrameRegistration regArgStorage = new(pStorage, (uint)argCount, areByRefs: false); - RuntimeImports.GCFrameRegistration regByRefStorage = new(pByRefStorage, (uint)argCount, areByRefs: true); -@@ -326,7 +332,7 @@ public DynamicInvokeInfo(MethodBase method, IntPtr invokeThunk) - - private unsafe void CheckArguments( - ref object copyOfParameters, -- ByReference* byrefParameters, -+ void* byrefParameters, - object?[] parameters, - BinderBundle binderBundle) - { -@@ -398,8 +404,10 @@ public DynamicInvokeInfo(MethodBase method, IntPtr invokeThunk) - - Unsafe.Add(ref copyOfParameters, i) = arg!; - -- byrefParameters[i] = new ByReference(ref (argumentInfo.Transform & Transform.Reference) != 0 ? -+#pragma warning disable 8500 -+ ((ByReference*)byrefParameters)[i] = new ByReference(ref (argumentInfo.Transform & Transform.Reference) != 0 ? - ref Unsafe.As(ref Unsafe.Add(ref copyOfParameters, i)) : ref arg.GetRawData()); -+#pragma warning restore 8500 - } - } - -diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/MethodBase.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/MethodBase.cs -index 13ff9e34df920..98069a70ef55b 100644 ---- a/src/libraries/System.Private.CoreLib/src/System/Reflection/MethodBase.cs -+++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/MethodBase.cs -@@ -236,6 +236,7 @@ BindingFlags invokeAttr - shouldCopyBack[i] = copyBackArg; - copyOfParameters[i] = arg; - -+#pragma warning disable 8500 - if (isValueType) - { - #if !MONO // Temporary until Mono is updated. -@@ -254,6 +255,7 @@ BindingFlags invokeAttr - ByReference objRef = ByReference.Create(ref copyOfParameters[i]); - *(ByReference*)(byrefParameters + i) = objRef; - } -+#pragma warning restore 8500 - } - } - -diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs -index b1f3222736a1a..1fd9c177ddb8a 100644 ---- a/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs -+++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs -@@ -146,7 +146,9 @@ internal void ThrowNoInvokeException() - Span shouldCopyBackParameters = new(ref argStorage._copyBack0, argCount); - - StackAllocatedByRefs byrefStorage = default; -+#pragma warning disable 8500 - IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; -+#pragma warning restore 8500 - - CheckArguments( - copyOfParameters, -@@ -299,7 +301,9 @@ public override object Invoke(BindingFlags invokeAttr, Binder? binder, object?[] - Span shouldCopyBackParameters = new(ref argStorage._copyBack0, argCount); - - StackAllocatedByRefs byrefStorage = default; -+#pragma warning disable 8500 - IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; -+#pragma warning restore 8500 - - CheckArguments( - copyOfParameters, -diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs -index 770a59d40eb91..bf534c58e70ed 100644 ---- a/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs -+++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs -@@ -143,7 +143,9 @@ private void ThrowNoInvokeException() - Span shouldCopyBackParameters = new(ref argStorage._copyBack0, argCount); - - StackAllocatedByRefs byrefStorage = default; -+#pragma warning disable 8500 - IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; -+#pragma warning restore 8500 - - CheckArguments( - copyOfParameters, -diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/JsonHelpers.cs b/src/libraries/System.Text.Json/src/System/Text/Json/JsonHelpers.cs -index 9e9adcd0a52ea..4706b64753c97 100644 ---- a/src/libraries/System.Text.Json/src/System/Text/Json/JsonHelpers.cs -+++ b/src/libraries/System.Text.Json/src/System/Text/Json/JsonHelpers.cs -@@ -15,7 +15,7 @@ internal static partial class JsonHelpers - /// Returns the span for the given reader. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] -- public static ReadOnlySpan GetSpan(this ref Utf8JsonReader reader) -+ public static ReadOnlySpan GetSpan(this scoped ref Utf8JsonReader reader) - { - return reader.HasValueSequence ? reader.ValueSequence.ToArray() : reader.ValueSpan; - } -diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Writer/Utf8JsonWriter.WriteProperties.String.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Writer/Utf8JsonWriter.WriteProperties.String.cs -index 65c6fd303c13c..7cd0e3b45a4a1 100644 ---- a/src/libraries/System.Text.Json/src/System/Text/Json/Writer/Utf8JsonWriter.WriteProperties.String.cs -+++ b/src/libraries/System.Text.Json/src/System/Text/Json/Writer/Utf8JsonWriter.WriteProperties.String.cs -@@ -112,12 +112,12 @@ private void WriteStringEscapeProperty(scoped ReadOnlySpan propertyName, i - Debug.Assert(int.MaxValue / JsonConstants.MaxExpansionFactorWhileEscaping >= propertyName.Length); - - char[]? propertyArray = null; -+ scoped Span escapedPropertyName; - - if (firstEscapeIndexProp != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(propertyName.Length, firstEscapeIndexProp); - -- scoped Span escapedPropertyName; - if (length > JsonConstants.StackallocCharThreshold) - { - propertyArray = ArrayPool.Shared.Rent(length); -@@ -269,12 +269,12 @@ private void WriteStringEscapeProperty(scoped ReadOnlySpan utf8PropertyNam - Debug.Assert(int.MaxValue / JsonConstants.MaxExpansionFactorWhileEscaping >= utf8PropertyName.Length); - - byte[]? propertyArray = null; -+ scoped Span escapedPropertyName; - - if (firstEscapeIndexProp != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(utf8PropertyName.Length, firstEscapeIndexProp); - -- scoped Span escapedPropertyName; - if (length > JsonConstants.StackallocByteThreshold) - { - propertyArray = ArrayPool.Shared.Rent(length); -@@ -1076,12 +1076,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan property - - char[]? valueArray = null; - char[]? propertyArray = null; -+ scoped Span escapedValue; - - if (firstEscapeIndexVal != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(value.Length, firstEscapeIndexVal); - -- scoped Span escapedValue; - if (length > JsonConstants.StackallocCharThreshold) - { - valueArray = ArrayPool.Shared.Rent(length); -@@ -1096,11 +1096,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan property - value = escapedValue.Slice(0, written); - } - -+ scoped Span escapedPropertyName; -+ - if (firstEscapeIndexProp != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(propertyName.Length, firstEscapeIndexProp); - -- scoped Span escapedPropertyName; - if (length > JsonConstants.StackallocCharThreshold) - { - propertyArray = ArrayPool.Shared.Rent(length); -@@ -1135,12 +1136,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan utf8Prop - - byte[]? valueArray = null; - byte[]? propertyArray = null; -+ scoped Span escapedValue; - - if (firstEscapeIndexVal != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(utf8Value.Length, firstEscapeIndexVal); - -- scoped Span escapedValue; - if (length > JsonConstants.StackallocByteThreshold) - { - valueArray = ArrayPool.Shared.Rent(length); -@@ -1155,11 +1156,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan utf8Prop - utf8Value = escapedValue.Slice(0, written); - } - -+ scoped Span escapedPropertyName; -+ - if (firstEscapeIndexProp != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(utf8PropertyName.Length, firstEscapeIndexProp); - -- scoped Span escapedPropertyName; - if (length > JsonConstants.StackallocByteThreshold) - { - propertyArray = ArrayPool.Shared.Rent(length); -@@ -1194,12 +1196,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan property - - byte[]? valueArray = null; - char[]? propertyArray = null; -+ scoped Span escapedValue; - - if (firstEscapeIndexVal != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(utf8Value.Length, firstEscapeIndexVal); - -- scoped Span escapedValue; - if (length > JsonConstants.StackallocByteThreshold) - { - valueArray = ArrayPool.Shared.Rent(length); -@@ -1214,11 +1216,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan property - utf8Value = escapedValue.Slice(0, written); - } - -+ scoped Span escapedPropertyName; -+ - if (firstEscapeIndexProp != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(propertyName.Length, firstEscapeIndexProp); - -- scoped Span escapedPropertyName; - if (length > JsonConstants.StackallocCharThreshold) - { - propertyArray = ArrayPool.Shared.Rent(length); -@@ -1253,12 +1256,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan utf8Prop - - char[]? valueArray = null; - byte[]? propertyArray = null; -+ scoped Span escapedValue; - - if (firstEscapeIndexVal != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(value.Length, firstEscapeIndexVal); - -- scoped Span escapedValue; - if (length > JsonConstants.StackallocCharThreshold) - { - valueArray = ArrayPool.Shared.Rent(length); -@@ -1273,11 +1276,12 @@ private void WriteStringEscapePropertyOrValue(scoped ReadOnlySpan utf8Prop - value = escapedValue.Slice(0, written); - } - -+ scoped Span escapedPropertyName; -+ - if (firstEscapeIndexProp != -1) - { - int length = JsonWriterHelper.GetMaxEscapedLength(utf8PropertyName.Length, firstEscapeIndexProp); - -- scoped Span escapedPropertyName; - if (length > JsonConstants.StackallocByteThreshold) - { - propertyArray = ArrayPool.Shared.Rent(length); - -From 89c6bf4290c7d65ec4d9ffbe92015e4cbf6c4a16 Mon Sep 17 00:00:00 2001 -From: Jared Parsons -Date: Fri, 30 Sep 2022 09:49:03 -0700 -Subject: [PATCH 2/6] Make return and out equivalent for ref safety - -https://github.com/dotnet/roslyn/pull/64318 - -This change allows anything returnable from a method to be assigned to -an `out` parameter. In several places had to add `scoped` to `ref` to -inform compiler they could not be captured in an `out` parameter. ---- - .../System/Reflection/DynamicInvokeInfo.cs | 4 ++-- - .../src/System/Number.BigInteger.cs | 20 ++++++++++++------- - .../Number.NumberToFloatingPointBits.cs | 2 +- - .../RegexCaseEquivalences.cs | 2 +- - 4 files changed, 17 insertions(+), 11 deletions(-) - -diff --git a/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs b/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs -index cc3d8c74a60b7..4f0106980837d 100644 ---- a/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs -+++ b/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/DynamicInvokeInfo.cs -@@ -404,10 +404,10 @@ public DynamicInvokeInfo(MethodBase method, IntPtr invokeThunk) - - Unsafe.Add(ref copyOfParameters, i) = arg!; - --#pragma warning disable 8500 -+#pragma warning disable 8500, 9094 - ((ByReference*)byrefParameters)[i] = new ByReference(ref (argumentInfo.Transform & Transform.Reference) != 0 ? - ref Unsafe.As(ref Unsafe.Add(ref copyOfParameters, i)) : ref arg.GetRawData()); --#pragma warning restore 8500 -+#pragma warning restore 8500, 9094 - } - } - -diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs b/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs -index c19e7d036b04b..f7e613f962829 100644 ---- a/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs -+++ b/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs -@@ -317,7 +317,7 @@ internal static partial class Number - private int _length; - private fixed uint _blocks[MaxBlockCount]; - -- public static void Add(ref BigInteger lhs, ref BigInteger rhs, out BigInteger result) -+ public static void Add(scoped ref BigInteger lhs, scoped ref BigInteger rhs, out BigInteger result) - { - // determine which operand has the smaller length - ref BigInteger large = ref (lhs._length < rhs._length) ? ref rhs : ref lhs; -@@ -369,7 +369,7 @@ public static void Add(ref BigInteger lhs, ref BigInteger rhs, out BigInteger re - } - } - -- public static int Compare(ref BigInteger lhs, ref BigInteger rhs) -+ public static int Compare(scoped ref BigInteger lhs, scoped ref BigInteger rhs) - { - Debug.Assert(unchecked((uint)(lhs._length)) <= MaxBlockCount); - Debug.Assert(unchecked((uint)(rhs._length)) <= MaxBlockCount); -@@ -427,7 +427,7 @@ public static uint CountSignificantBits(ref BigInteger value) - return (lastIndex * BitsPerBlock) + CountSignificantBits(value._blocks[lastIndex]); - } - -- public static void DivRem(ref BigInteger lhs, ref BigInteger rhs, out BigInteger quo, out BigInteger rem) -+ public static void DivRem(scoped ref BigInteger lhs, scoped ref BigInteger rhs, out BigInteger quo, out BigInteger rem) - { - // This is modified from the libraries BigIntegerCalculator.DivRem.cs implementation: - // https://github.com/dotnet/runtime/blob/main/src/libraries/System.Runtime.Numerics/src/System/Numerics/BigIntegerCalculator.DivRem.cs -@@ -558,6 +558,11 @@ public static void DivRem(ref BigInteger lhs, ref BigInteger rhs, out BigInteger - - if (digit > 0) - { -+ // rem and rhs have different lifetimes here and compiler is warning -+ // about potential for one to copy into the other. This is a place -+ // ref scoped parameters would alleviate. -+ // https://github.com/dotnet/roslyn/issues/64393 -+#pragma warning disable CS9080 - // Now it's time to subtract our current quotient - uint carry = SubtractDivisor(ref rem, n, ref rhs, digit); - -@@ -571,6 +576,7 @@ public static void DivRem(ref BigInteger lhs, ref BigInteger rhs, out BigInteger - - Debug.Assert(carry == 1); - } -+#pragma warning restore CS9080 - } - - // We have the digit! -@@ -693,7 +699,7 @@ public static uint HeuristicDivide(ref BigInteger dividend, ref BigInteger divis - return quotient; - } - -- public static void Multiply(ref BigInteger lhs, uint value, out BigInteger result) -+ public static void Multiply(scoped ref BigInteger lhs, uint value, out BigInteger result) - { - if (lhs._length <= 1) - { -@@ -739,7 +745,7 @@ public static void Multiply(ref BigInteger lhs, uint value, out BigInteger resul - } - } - -- public static void Multiply(ref BigInteger lhs, ref BigInteger rhs, out BigInteger result) -+ public static void Multiply(scoped ref BigInteger lhs, scoped ref BigInteger rhs, out BigInteger result) - { - if (lhs._length <= 1) - { -@@ -1032,7 +1038,7 @@ public void Multiply(uint value) - Multiply(ref this, value, out this); - } - -- public void Multiply(ref BigInteger value) -+ public void Multiply(scoped ref BigInteger value) - { - if (value._length <= 1) - { -@@ -1115,7 +1121,7 @@ public static void SetUInt64(out BigInteger result, ulong value) - } - } - -- public static void SetValue(out BigInteger result, ref BigInteger value) -+ public static void SetValue(out BigInteger result, scoped ref BigInteger value) - { - int rhsLength = value._length; - result._length = rhsLength; -diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs b/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs -index e88014c3a9518..bec85ff737bab 100644 ---- a/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs -+++ b/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs -@@ -794,7 +794,7 @@ public FloatingPointInfo(ushort denormalMantissaBits, ushort exponentBits, int m - 0x8e679c2f5e44ff8f, 0x570f09eaa7ea7648 - }; - -- private static void AccumulateDecimalDigitsIntoBigInteger(ref NumberBuffer number, uint firstIndex, uint lastIndex, out BigInteger result) -+ private static void AccumulateDecimalDigitsIntoBigInteger(scoped ref NumberBuffer number, uint firstIndex, uint lastIndex, out BigInteger result) - { - BigInteger.SetZero(out result); - -diff --git a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCaseEquivalences.cs b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCaseEquivalences.cs -index 7c65c63e90dfb..72a61998b8ccf 100644 ---- a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCaseEquivalences.cs -+++ b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCaseEquivalences.cs -@@ -33,7 +33,7 @@ internal static partial class RegexCaseEquivalences - /// If is involved in case conversion, then equivalences will contain the - /// span of character which should be considered equal to in a case-insensitive comparison. - /// if is involved in case conversion; otherwise, -- public static bool TryFindCaseEquivalencesForCharWithIBehavior(char c, CultureInfo culture, ref RegexCaseBehavior mappingBehavior, out ReadOnlySpan equivalences) -+ public static bool TryFindCaseEquivalencesForCharWithIBehavior(char c, CultureInfo culture, scoped ref RegexCaseBehavior mappingBehavior, out ReadOnlySpan equivalences) - { - if ((c | 0x20) == 'i' || (c | 0x01) == '\u0131') - { - -From 2b96bc0edcf67fed4d18dc155e045bc9a4328c64 Mon Sep 17 00:00:00 2001 -From: Jared Parsons -Date: Fri, 30 Sep 2022 10:52:30 -0700 -Subject: [PATCH 3/6] Warnings on managed pointer types - -https://github.com/dotnet/roslyn/pull/64294 - -Compiler now issues warnings for pointer operations involving managed -types ---- - .../src/System/Reflection/Emit/DynamicMethod.cs | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs -index a2d74336bee2b..bf455a6b63f69 100644 ---- a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs -+++ b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs -@@ -504,6 +504,9 @@ Signature LazyCreateSignature() - Span shouldCopyBackParameters = new(ref argStorage._copyBack0, argCount); - - StackAllocatedByRefs byrefStorage = default; -+#pragma warning disable CS8500 -+ IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; -+#pragma warning restore CS8500 - IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; - - CheckArguments( - -From 28ada4a0580acc72a9e9f658b93b163017d23b63 Mon Sep 17 00:00:00 2001 -From: Jared Parsons -Date: Fri, 30 Sep 2022 10:26:17 -0700 -Subject: [PATCH 4/6] Update compiler version - ---- - eng/Versions.props | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/eng/Versions.props b/eng/Versions.props -index b839658f454ee..ff8f04758c364 100644 ---- a/eng/Versions.props -+++ b/eng/Versions.props -@@ -53,7 +53,7 @@ - -- 4.4.0-3.22452.8 -+ 4.4.0-3.22479.16 - 0.2.0 - - 7.0.100-rc.1.22402.1 - -From cb7618ebf71639627549db8945097efe82b1a27c Mon Sep 17 00:00:00 2001 -From: Jared Parsons -Date: Fri, 30 Sep 2022 15:50:08 -0700 -Subject: [PATCH 5/6] Fixup - ---- - .../src/System/Reflection/Emit/DynamicMethod.cs | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs -index bf455a6b63f69..84bc2f8ebd3c4 100644 ---- a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs -+++ b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs -@@ -507,7 +507,6 @@ Signature LazyCreateSignature() - #pragma warning disable CS8500 - IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; - #pragma warning restore CS8500 -- IntPtr* pByRefStorage = (IntPtr*)&byrefStorage; - - CheckArguments( - copyOfParameters, - -From 46af7972a57e3378e53ba98cec65bee61850f58b Mon Sep 17 00:00:00 2001 -From: Jared Parsons -Date: Fri, 30 Sep 2022 16:03:31 -0700 -Subject: [PATCH 6/6] Ref safety rules attribute - ---- - .../ILCompiler.Compiler.Tests.Assets.csproj | 1 + - .../ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.csproj | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.Assets/ILCompiler.Compiler.Tests.Assets.csproj b/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.Assets/ILCompiler.Compiler.Tests.Assets.csproj -index ea167e092b031..605d407443da2 100644 ---- a/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.Assets/ILCompiler.Compiler.Tests.Assets.csproj -+++ b/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.Assets/ILCompiler.Compiler.Tests.Assets.csproj -@@ -8,6 +8,7 @@ - netstandard2.0 - - true -+ noRefSafetyRulesAttribute=true - - - -diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.csproj b/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.csproj -index 5967b093841b1..b09ef31312661 100644 ---- a/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.csproj -+++ b/src/coreclr/tools/aot/ILCompiler.Compiler.Tests/ILCompiler.Compiler.Tests.csproj -@@ -14,6 +14,7 @@ - x86;x64 - AnyCPU - true -+ noRefSafetyRulesAttribute=true - - -