Как использовать внутреннюю функцию llvm.eh.sjlj.setjmp в llvm
Я пытаюсь вставить внутреннюю функцию llvm.eh.sjlj.setjmp в мой проход LLVM. Из документации эта функция берет один аргумент, который является указателем i8* на буфер из пяти слов, который сохраняет текущую среду. Я использую следующий метод для создания глобального массива в качестве буфера:
*ArrayType* jump_buf_type = ArrayType::get(IntegerType::get(M.getContext(), 8), 80);
GlobalVariable* jmp_buf_llvm = new GlobalVariable(M,
jump_buf_type,
false,
GlobalValue::ExternalLinkage,
0,
"jmp_buf_llvm");
Приведенный выше метод создает глобальный массив, а возвращаемая переменная jmp_buf_llvm имеет тип [80 x i8]*
Однако мне трудно получить указатель i8*. Я хочу передать созданный массив в качестве аргумента внутренней функции llvm.eh.sjlj.setjmp. Любое предложение о том, как получить указатель i8* из массива?