[opaque pointer type]: Pass explicit pointee type when building a constant GEP.
authorDavid Blaikie <dblaikie@gmail.com>
Fri, 21 Aug 2015 20:16:51 +0000 (20:16 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Fri, 21 Aug 2015 20:16:51 +0000 (20:16 +0000)
commit81e467d35217e7c331048c474f13bc91c942a911
treef199d0324cd5e049b0e61a07955cfd990b35d676
parentd01f303c3260b8552e1b5492fade808a52a1fbc2
[opaque pointer type]: Pass explicit pointee type when building a constant GEP.

Gets a bit tricky in the ValueMapper, of course - not sure if we should
just expose a list of explicit types for each Value so that the
ValueMapper can be neutral to these special cases (it's OK for things
like load, where the explicit type is the result type - but when that's
not the case, it means plumbing through another "special" type... )

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245728 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Constants.h
lib/IR/Constants.cpp
lib/Transforms/Utils/ValueMapper.cpp