[PATCH] D11242: Fix assert when inlining a constantexpr addrspacecast
Matt Arsenault
Matthew.Arsenault at amd.com
Wed Jul 22 11:54:52 PDT 2015
arsenm added inline comments.
================
Comment at: lib/Analysis/ConstantFolding.cpp:250
@@ -249,2 +249,3 @@
// Look through ptr->int and ptr->ptr casts.
if (CE->getOpcode() == Instruction::PtrToInt ||
+ CE->getOpcode() == Instruction::BitCast)
----------------
arsenm wrote:
> majnemer wrote:
> > Isn't there still a bug here? The size of the result type of `ptrtoint` can disagree with its operand's type.
> >
> > Sounds like the correct thing to do would be to call the static member function `CastInst::isNoopCast` with appropriate operands.
> This is what I thought at first to, but ptrtoints with noncanonical integer sizes seem to work. I'm not exactly sure why
I think I understand why it isn't necessary to worry about that case. Because this doesn't look through inttoptr, we don't see pointer size changes through the ptrtoint/inttoptr path.
http://reviews.llvm.org/D11242
More information about the llvm-commits
mailing list