StoreInst getType return void

Hi All,

I need to get the type of store instructions using getType from StoreInst. However, I get the following error when compiling my program:

clang-3.6: /home/norouzi/Desktop/software/dp-clang-llvm/branches/llvm_361/dp-clang-llvm/include/llvm/IR/DataLayout.h:500: uint64_t llvm::DataLayout::getTypeSizeInBits(llvm::Type*) const: Assertion `Ty->isSized() && “Cannot getTypeInfo() on a type that is unsized!”’ failed.

I tried to figure out why and checked out that getType returns “void” so DataLayout cannot proceed.

I should mention that i tried it also about LoadInst which perfectly works.

I would be happy about any help.

Best,

Mo

Hi Mohammad,

Store instructions have void type [1].

Load instructions have a type corresponding to the data being loaded.

[1] http://llvm.org/docs/LangRef.html#store-instruction

best
vedant

A “store” instruction doesn’t return anything, so getType() returns void.

Try getOperand(0)->getType(). That returns the type of the first operand (i.e. the value stored). http://llvm.org/docs/LangRef.html#store-instruction