Type verification in tests (#40186)
authorDavid Wrighton <davidwr@microsoft.com>
Mon, 3 Aug 2020 20:03:23 +0000 (13:03 -0700)
committerGitHub <noreply@github.com>
Mon, 3 Aug 2020 20:03:23 +0000 (13:03 -0700)
commita4c4efcdb8bb3a30e064bb57e617866f367f8e52
treebb76400839d71b77c2a1f035018cc5b76e97c6c1
parentbb712235cc32806012d1fed5842da409dfea91ac
Type verification in tests (#40186)

- Enable type layout verification in crossgen2 test passes

Product bugs found/fixed
- Fix type blittability issue found during enabling this test.
  - HFA encoding was not correct for Arm64, and did not have R2R defined constants

- Fix type layout verification infrastructure issues
  - Do not generate type layout checks or verification if the offset is 24 bits or larger
  - Only load approx enclosing type when verifying, instead of enclosing type (this avoids asserts)
src/coreclr/src/inc/readytorun.h
src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunConstants.cs
src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/FieldFixupSignature.cs
src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs
src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs
src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs
src/coreclr/src/vm/fieldmarshaler.cpp
src/coreclr/src/vm/jitinterface.cpp
src/coreclr/src/zap/zapreadytorun.cpp
src/coreclr/tests/src/CLRTest.CrossGen.targets
src/tests/readytorun/crossgen2/Program.cs