Имена переменных и параметры инструкций LLVM

Я пытаюсь обнаружить объявления массивов и построить таблицу значений символов для массивов статического размера. Он будет содержать пару name-arraySize. У меня есть несколько вопросов:

  1. Учитывая такую ​​инструкцию, как %a = alloca [200 x i8], align 16
    как я могу извлечь из нее aимя массива ?

  2. Я пытаюсь извлечь 200в качестве размера массива, но этот код:

    if(AllocaInst *allocInst = dyn_cast(&*I)){
    PointerType *p = allocInst->getType();
    если(p->getElementType()->isArrayTy()){
    Значение* v = allocInst->getOperand(0);
    ошибки() << *v ;
     }
    }
    

    дает мне i32 1, когда я печатаю v.
    Кто-нибудь знает, почему это так?
    Я не думал, что в этом есть что-то 32-битное, кроме, может быть, адреса.

9
задан Jithin Pavithran 16 March 2018 в 18:29
поделиться