Я хочу получить значение массива по индексу переменной. Индекс вычисляется программой и неизвестен во время синтаксического анализа. Таким образом, он хранится в значении и преобразуется в Int следующим образом:
Value *IndexV = Index->Codegen();
Value *IntV = Builder.CreateFPToUI( IndexV, Type::getInt32Ty( getGlobalContext() ) );
Если я знаю индекс, я могу использовать:
Value *VV = Builder.CreateExtractValue( Builder.CreateLoad( V ), 0 );
Это дает мне первый элемент массива. И работает корректно. Но как я могу использовать IntV
в качестве индекса? CreateExtractValue
принимает только ArrayRef, и нет возможности преобразовать IntV
в ArrayRef, или я ошибаюсь? Как можно сделать такое?
Спасибо!