Использовали ли вы stackalloc
в этих методах? Пока я играл с этим, я обнаружил, что если stackalloc
является первым появлением непроверяемого кода, тогда peverify выдает это сообщение об ошибке и игнорирует остальную часть метода. Однако обратное неверно. Если stackalloc
появится позже в методе, то другие ошибки будут предшествовать ошибке, сгенерированной оператором stackalloc
. Может быть, это ошибка?
Рассмотрим следующий пример.
public static void Main()
{
unsafe
{
int* a = stackalloc int[100];
int* b = null;
}
}
Я получаю следующий результат:
[IL]: Error: [myassembly.exe : A.Program::Main][offset 0x00000007] Instruction cannot be verified.
1 Error(s) Verifying myassembly.exe
Однако, если я закомментирую строку stackalloc
, я получу такой результат:
[IL]: Error: [myassembly.exe : A.Program::Main][offset0x00000004][found Native Int][expected unmanaged pointer] Unexpected type on the stack.
1 Error(s) Verifying myassembly.exe