Cast error

Hi all,

I have a trouble with LLVM rev - 147926 cast instructions. Here is my code:

for(std::vector<Value*>::iterator it = getElementPtrs.begin(); it != getElementPtrs.end(); ++it) {
Value* current = *it;
errs() << current << “\n”;
GetElementPtrInst
gep = cast(current);
assert(gep != NULL && “GetElementPtrInst must be valid!”);

Program crashes with the above mentioned assertion. Here getElementPtrs is a vector of Values, that are GetElementPtrInst- s. errs() works fine. I’ve also tried to dyn_cast the value, but it doesn’t work too.
Any ideas?

Sincerely,
Hripsime.

Hi Hripsime,

I have a trouble with LLVM rev - 147926 cast instructions. Here is my code:

............
for(std::vector<Value*>::iterator it = getElementPtrs.begin(); it !=
getElementPtrs.end(); ++it) {
                  Value* current = *it;
                  errs() << *current << "\n";
                  GetElementPtrInst* gep = cast<GetElementPtrInst>(current);
                  assert(gep != NULL && "GetElementPtrInst must be valid!");
............

Program crashes with the above mentioned assertion. Here getElementPtrs is a
vector of Values, that are GetElementPtrInst- s. errs() works fine. I've also
tried to dyn_cast the value, but it doesn't work too.
Any ideas?

maybe it's a ConstantExpr getelementptr, rather than a GetElementPtrInst?

Ciao, Duncan.