[IR] Don't accept nullptr as GEP element type
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 8 Jul 2021 18:56:05 +0000 (20:56 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Fri, 9 Jul 2021 15:37:43 +0000 (17:37 +0200)
commit5035e7be1a8ab923e1a82def7e313cc11c0b176f
tree7e1b3dec460a6228bfa90a58885bba6aa81713d6
parent52900486a1b5d270687b7268dc8dd90061889066
[IR] Don't accept nullptr as GEP element type

GetElementPtrInst::Create() (and IRBuilder methods based on it)
currently accept nullptr as the element type, and will fetch the
element type from the pointer in that case. Remove this fallback,
as it is incompatible with opaque pointers. I've removed a handful
of leftover calls using this behavior as a preliminary step.

Out-of-tree code affected by this change should either pass a proper
type, or can temporarily explicitly call getPointerElementType(),
if the newly added assertion is encountered.

Differential Revision: https://reviews.llvm.org/D105653
llvm/include/llvm/IR/Instructions.h