Я пишу проход функции и хотел бы добавить глобальную переменную типа int на этапе инициализации для использования в фактической работе прохода.
До сих пор у меня есть
bool doInitialization(Module &M) {
LLVMContext &c = M.getContext();
Type *intTy = TypeBuilder<int,false>::get(c);
Value *p = M.getOrInsertGlobal("var1",intTy);
return true
}
По какой-то причине var1 имеет тип int*. Например, добавив это после объявления
Type *pt = p->getType();
if (isa<PointerType>(pt)) {
errs().write_escaped("Is a pointer ty") << '\n';
}
Закончится печатью при запуске скомпилированного кода, и
if ((intTy->getPointerTo()) == (p->getType())) {
errs().write_escaped("This is confusing") << '\n';
}
Снова напечатает строку.
Можно ли с помощью этого метода добавить глобальную переменную типа int, и если да, то где я ошибаюсь?