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.



Hi Mohammad,

Store instructions have void type [1].

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



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).