Я пытаюсь обнаружить объявления массивов и построить таблицу значений символов для массивов статического размера. Он будет содержать пару name-arraySize. У меня есть несколько вопросов:
Учитывая такую инструкцию, как %a = alloca [200 x i8], align 16
как я могу извлечь из нее a
имя массива ?
Я пытаюсь извлечь 200
в качестве размера массива, но этот код:
if(AllocaInst *allocInst = dyn_cast(&*I)){
PointerType *p = allocInst->getType();
если(p->getElementType()->isArrayTy()){
Значение* v = allocInst->getOperand(0);
ошибки() << *v ;
}
}
дает мне i32 1
, когда я печатаю v
.
Кто-нибудь знает, почему это так?
Я не думал, что в этом есть что-то 32-битное, кроме, может быть, адреса.