Several instruction classes override getType() when the instruction always creates a particular type of value. For example, the result of insertelement is always a vector, so InsertElementInst overrides getType() to return a VectorType*. This makes perfect sense. However, ExtractValueInst and InsertValueInst override getType() to return a PointerType*, which does not make sense and is in fact never correct for the latter instruction; this is probably a relic of an oversight during class creation. So this patch simply removes these overrides, which I suppose is technically an API change.
gettype.patch.txt (1.1 KB)