Этот код не проходит проверку:
.assembly extern mscorlib {}
.assembly Program {}
.method private static void Main() cil managed
{
.entrypoint
.maxstack 3
.locals init ( int32[0 ... 10] a )
ldc.i4 10
newarr int32
stloc.0
ldloc.0
ldc.i4.0
ldc.i4.s 32
stelem.i4
call string [mscorlib]System.Console::ReadLine()
pop
ret
}
Со следующей ошибкой:
[IL]: Ошибка: [C: [...] Program.exe: :: Main] [смещение 0x0000000F] Ожидаемый одномерный массив. 1 Ошибка (и) при проверке Program.exe
Тем не менее, этот код отлично проверяет:
.assembly extern mscorlib {}
.assembly Program {}
.method private static void Main() cil managed
{
.entrypoint
.maxstack 3
.locals init ( int32[] a )
ldc.i4 10
newarr int32
stloc.0
ldloc.0
ldc.i4.0
ldc.i4.s 32
stelem.i4
call string [mscorlib]System.Console::ReadLine()
pop
ret
}
Это нереализованная функция, ошибка в CLR или PEVerify или просто неправильное понимание использования? Обе программы работают нормально.