Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Mono] Fix unsafe accessor related issue for full AOT #91216

Merged
merged 2 commits into from
Aug 29, 2023

Conversation

fanyang-mono
Copy link
Member

@fanyang-mono fanyang-mono commented Aug 28, 2023

Fixes #91066

This PR fixed two issues:

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

@fanyang-mono
Copy link
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Member

@lambdageek lambdageek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please check the wrapper subtype also when skipping the assertion

src/mono/mono/mini/method-to-ir.c Outdated Show resolved Hide resolved
@fanyang-mono
Copy link
Member Author

/backport to release/8.0

@github-actions
Copy link
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6012851339

@fanyang-mono
Copy link
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@marek-safar
Copy link
Contributor

Is there test somewhere?

@SamMonoRT
Copy link
Member

Is there test somewhere?

This was actually exposed via certain tests in our CI running via extra-platforms lane (unfortunately hardware limitation don't allow to run on per PR basis).

@fanyang-mono
Copy link
Member Author

linux-x64 Release AllSubsets_Mono_LLVMFullAot_RuntimeTests llvmfullaot is the lane which should test this. Looks like there was some difficulty running it on CI.

@fanyang-mono
Copy link
Member Author

fanyang-mono commented Aug 29, 2023

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met


=================================================================
	Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
	Native stacktrace:
=================================================================
	0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
	0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
	0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
	0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
	0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
	0xd - Unknown
	0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
	0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
	0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
	0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
	0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
	0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
	0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
	0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
	0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
	0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
	0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
	0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
	0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
	0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
	0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
	0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
	0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
	0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
	0x7ff8031bd41f - /usr/lib/dyld : start

=================================================================
	External Debugger Dump:
=================================================================

=================================================================
	Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2  ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05  .......H...I....
0x7ff8034df202  73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53  s.H............S
0x7ff8034df212  00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a  ...I....s.H.....
0x7ff8034df222  ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05  ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang"  -c -x assembler  -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp  /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o  "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

@fanyang-mono fanyang-mono merged commit 7cc9f14 into dotnet:main Aug 29, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Sep 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
4 participants