[PATCH] D133036: [InstCombine] Treat passing undef to noundef params as UB
Tim Neumann via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Nov 12 16:25:25 PST 2022
TimNN added a comment.
I didn't manage to repro with `opt`, so still no compilable IR. I did some more debugging, though:
- Inside `removeDeadArgumentsFromCallers`, `CB->getCalledFunction()->dump()` (after the modification) is `define void @_RNvXs0_NtNtCs840rfDNPFol_10proc_macro6bridge3rpchINtB5_6EncodeuE6encodeB9_(i8 %0, ptr noalias noundef align 8 dereferenceable(40) %1, ptr noalias nocapture nonnull readnone align 1 %2) unnamed_addr #0 personality ptr @rust_eh_personality !dbg !18034 { ... }`. **Definition, no `noundef`.**
- Inside `callPassesUndefToPassingUndefUBParam`, `Call.getCalledFunction()->dump()` is `declare void @_RNvXs0_NtNtCs840rfDNPFol_10proc_macro6bridge3rpchINtB5_6EncodeuE6encodeB9_(i8 %0, ptr noalias noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull align 1 %2) unnamed_addr #2`. **Declaration, `noundef` is back.**
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D133036/new/
https://reviews.llvm.org/D133036
More information about the cfe-commits
mailing list