<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJzNV1FzmzgQ_jX4RRMPCAz2gx9skrSd6d1kLu1N--QRIGw1MmKQSJv79beSsEHYrpvmHs6TBCOtvv20-2m1yUTxsvRiv_vxbz1_5YVr9NfnP71whUSt0M0jumEVZxVFXpgiD8-ktStoqQefBSuQF_mlEB6ee3iBatpIURHO1AtiIYYl8-l0CjMeXqG2gnXIS9YWhFaqeQFX9g2hrEEsQCXhkno4RZxklGuf3wSrnAFZA35H2Py1A0D6FR-91bqhhYRvtxrV0um5uP4H3sz765yderOUcXriGd7rHTNm-sniCHmzNQo6W7MORm7NO0z4QxAz0QPl-9oAMf2l3SqDdkACdDfydoETaVY9iycaOGP0hxv8g81rInISjj7GCFlAKy4jGautw_Tho4TLCWy_s6roB3NOSdXWwZDscewVbE_IHnY8yBgpAjPb4cM7-s7UjlWoEvr0zNaDzAzFdSA0zUWlzjG1E79G9wJT3GXcDcgh7V2I0xNODVVnxIBPc4_flvszIfgtETg4l9SAz8T4VfwvxthRA36TGnTkT2nq0V8meinKYy04Qe8dobIR-6Oyu1hCsHPCOW2G5Ew5eGs1HNSZUTHQXLQIOpfJ7dD36BpSVKrfuIdcsQ2vs98tOf95fPwL4RjK422H0Hf1--vyPa-ZS5I55m_Ud5i_Kylpo-SxJThrCn2J3qmH73diD43CfVWLWjzDl4bWQsKT8-f9Td2IbzRX3Ss8WJXztqD9wCPsTDTaIiVSsWo73QEwns00vFSFphFCk0IyTjes3IDb1MgiQAbBTDO5kWxfg4V6qSlYfPXCOzv1THhLjeJSpCcrsqeDlTk43UDUFLRA6RdtBCdRKtQDwGSHejdaBzQOxjjWcoeU6AyhLyZvvXFqk_NAig9grpP-dWTxGZotGP6_7fen28CmT32Tj6sOQOAgA6tIJioE-mOSGFjAwvO_CTeB1_GP4YFNXsL004ud15Ok2bZ76MuQKKHE5GJfE8UguoY6xBVWeTiBjpdxWkytvB8-3q0e75Bssz3UF4Kydou0sBulz9JOqdqcD3wPPzAnp3oTU9Fs4R0ROHGdzpHaUZQ3RO5QRvIn1ZCcdi4eFQygot3Xx5Pmw9TioRHbhuyPtLUj8M94oX3pHvx-9E_BTUGBw42oOOz6thvUVdiPIyDWlQgPhz7yf_iHTxjEJJoF6KFhlTJkPml2j2wLBfs97EGXCzw3ZQ4yAYG0U3Ka15qyb36P2MEIO8kxRWMw8HQVCHdASVlCPc-yeTLz0Qb0JJVo6AYyYPJ6z1kWR_aZT6WYggLW_o8Ig3l_ZwBe6ODl_mwe5YBXq11DSbF5YpxvzFnSwSZWZT9xMC9hveMgGhOOSYy20uzxClewdKBmLhTBSREikokrm8Y52DlA8RgoLjO0qfiGC9hzIfaEVdBz8OIKLixzcJPRXoNwEf8UIszAwoGYO0LBQZAXJbIS-WCkW9y9hwoAoH1h-GA6g0NR0N3wcWpNJMvXXORPJ1Mph3uySEUBK0vR1Wjr476tcp3q8xJcjCgmJaRhyGYI4RBN4ZYFRtQ4Sy-uOfIZmqxWf1HZcjjwdiOZENy16F2ubNWbn9QFG3RL-Rh2fTyds48XSbyI5if8mgciZVeiW3dnH8k_L3p37xpS7-zQY5qebgJE_yKZ_INUZAtnPkyvQwzXuzaArst4fMXGzfo7AP1cF0RRG8_D5XwpWl0w-mgdOp1JsQyLRbggE9KqnWiWFXti-aRt-NK9AbZw6bcZnKd939eM2h8mZUt1WzQLsR9PdsugXCR4HiQkmC0SEuKI-hkusjj2gzCJomhiulm51G0exhX9jgyEvqxmt5O3M2BL7GPsB0EURFB0o-m8zHBAcr8McJIsQD2RT6FM8OPVNmmWBlLfdzDJmVT9vTcB4UDFo3Rp-9KJYorTZScrRGxPaRrYQUM7MaSWhtG_Sr1iYg>53206</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Inliner asserts with cleanuppad
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
nikic
</td>
</tr>
</table>
<pre>
```
; RUN: opt -S -inline < %s
define void @foo() personality i32 (...)* undef {
entry:
br i1 false, label %join, label %split
split: ; preds = %entry
br label %join
join: ; preds = %split, %entry
%phi = phi i64 [ 1, %split ], [ 0, %entry ]
%cmp = icmp ugt i64 1, %phi
br i1 %cmp, label %invoke1, label %exit
invoke1: ; preds = %join
invoke void undef()
to label %exit unwind label %cleanup1
cleanup1: ; preds = %invoke1
%pad1 = cleanuppad within none []
br label %cleanup1.cont
cleanup1.cont: ; preds = %invoke2, %cleanup1
br i1 undef, label %cleanupret, label %invoke2
invoke2: ; preds = %cleanup1.cont
invoke void undef()
to label %cleanup1.cont unwind label %cleanup2
cleanup2: ; preds = %invoke2
%pad2 = cleanuppad within none []
br label %cleanupret
cleanupret: ; preds = %cleanup2, %cleanup1.cont
cleanupret from %pad1 unwind to caller
exit: ; preds = %invoke1, %join
ret void
}
define void @test() personality i32 (...)* undef {
invoke void @foo()
to label %exit unwind label %cleanup
exit: ; preds = %0
ret void
cleanup: ; preds = %0
%pad = cleanuppad within none []
cleanupret from %pad unwind to caller
}
```
Asserts:
```
opt: /home/npopov/repos/llvm-project/llvm/include/llvm/Support/Casting.h:255: std::enable_if_t<(! llvm::is_simple_type<Y>::value), typename llvm::cast_retty<X, const Y>::ret_type> llvm::cast(const Y&) [with X = llvm::CleanupPadInst; Y = llvm::Use; std::enable_if_t<(! llvm::is_simple_type<Y>::value), typename llvm::cast_retty<X, const Y>::ret_type> = llvm::CleanupPadInst*; typename llvm::cast_retty<X, const Y>::ret_type = llvm::CleanupPadInst*]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: build/bin/opt -S -inline -debug-only=inline test064.ll
#0 0x000000000316a451 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x0000000003167c2e SignalHandler(int) Signals.cpp:0:0
#2 0x00007ffabebb8750 __restore_rt (/lib64/libc.so.6+0x42750)
#3 0x00007ffabec0584c __pthread_kill_implementation (/lib64/libc.so.6+0x8f84c)
#4 0x00007ffabebb86a6 gsignal (/lib64/libc.so.6+0x426a6)
#5 0x00007ffabeba27d3 abort (/lib64/libc.so.6+0x2c7d3)
#6 0x00007ffabeba26fb _nl_load_domain.cold (/lib64/libc.so.6+0x2c6fb)
#7 0x00007ffabebb1396 (/lib64/libc.so.6+0x3b396)
#8 0x0000000003211cdf HandleInlinedEHPad(llvm::InvokeInst*, llvm::BasicBlock*, llvm::ClonedCodeInfo&) InlineFunction.cpp:0:0
#9 0x0000000003217fd3 llvm::InlineFunction(llvm::CallBase&, llvm::InlineFunctionInfo&, llvm::AAResults*, bool, llvm::Function*) (build/bin/opt+0x3217fd3)
#10 0x0000000002976948 llvm::InlinerPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (build/bin/opt+0x2976948)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNV1FzmzgQ_jX4RRMPCAz2gx9skrSd6d1kLu1N--QRIGw1MmKQSJv79beSsEHYrpvmHs6TBCOtvv20-2m1yUTxsvRiv_vxbz1_5YVr9NfnP71whUSt0M0jumEVZxVFXpgiD8-ktStoqQefBSuQF_mlEB6ee3iBatpIURHO1AtiIYYl8-l0CjMeXqG2gnXIS9YWhFaqeQFX9g2hrEEsQCXhkno4RZxklGuf3wSrnAFZA35H2Py1A0D6FR-91bqhhYRvtxrV0um5uP4H3sz765yderOUcXriGd7rHTNm-sniCHmzNQo6W7MORm7NO0z4QxAz0QPl-9oAMf2l3SqDdkACdDfydoETaVY9iycaOGP0hxv8g81rInISjj7GCFlAKy4jGautw_Tho4TLCWy_s6roB3NOSdXWwZDscewVbE_IHnY8yBgpAjPb4cM7-s7UjlWoEvr0zNaDzAzFdSA0zUWlzjG1E79G9wJT3GXcDcgh7V2I0xNODVVnxIBPc4_flvszIfgtETg4l9SAz8T4VfwvxthRA36TGnTkT2nq0V8meinKYy04Qe8dobIR-6Oyu1hCsHPCOW2G5Ew5eGs1HNSZUTHQXLQIOpfJ7dD36BpSVKrfuIdcsQ2vs98tOf95fPwL4RjK422H0Hf1--vyPa-ZS5I55m_Ud5i_Kylpo-SxJThrCn2J3qmH73diD43CfVWLWjzDl4bWQsKT8-f9Td2IbzRX3Ss8WJXztqD9wCPsTDTaIiVSsWo73QEwns00vFSFphFCk0IyTjes3IDb1MgiQAbBTDO5kWxfg4V6qSlYfPXCOzv1THhLjeJSpCcrsqeDlTk43UDUFLRA6RdtBCdRKtQDwGSHejdaBzQOxjjWcoeU6AyhLyZvvXFqk_NAig9grpP-dWTxGZotGP6_7fen28CmT32Tj6sOQOAgA6tIJioE-mOSGFjAwvO_CTeB1_GP4YFNXsL004ud15Ok2bZ76MuQKKHE5GJfE8UguoY6xBVWeTiBjpdxWkytvB8-3q0e75Bssz3UF4Kydou0sBulz9JOqdqcD3wPPzAnp3oTU9Fs4R0ROHGdzpHaUZQ3RO5QRvIn1ZCcdi4eFQygot3Xx5Pmw9TioRHbhuyPtLUj8M94oX3pHvx-9E_BTUGBw42oOOz6thvUVdiPIyDWlQgPhz7yf_iHTxjEJJoF6KFhlTJkPml2j2wLBfs97EGXCzw3ZQ4yAYG0U3Ka15qyb36P2MEIO8kxRWMw8HQVCHdASVlCPc-yeTLz0Qb0JJVo6AYyYPJ6z1kWR_aZT6WYggLW_o8Ig3l_ZwBe6ODl_mwe5YBXq11DSbF5YpxvzFnSwSZWZT9xMC9hveMgGhOOSYy20uzxClewdKBmLhTBSREikokrm8Y52DlA8RgoLjO0qfiGC9hzIfaEVdBz8OIKLixzcJPRXoNwEf8UIszAwoGYO0LBQZAXJbIS-WCkW9y9hwoAoH1h-GA6g0NR0N3wcWpNJMvXXORPJ1Mph3uySEUBK0vR1Wjr476tcp3q8xJcjCgmJaRhyGYI4RBN4ZYFRtQ4Sy-uOfIZmqxWf1HZcjjwdiOZENy16F2ubNWbn9QFG3RL-Rh2fTyds48XSbyI5if8mgciZVeiW3dnH8k_L3p37xpS7-zQY5qebgJE_yKZ_INUZAtnPkyvQwzXuzaArst4fMXGzfo7AP1cF0RRG8_D5XwpWl0w-mgdOp1JsQyLRbggE8UUp8suRojYBsl0Y4PubNI2fOleDVuwaDM4aPu-4Rn1RUzKlup-aRZiP57slgWmSRkmge9HOC8iHIWLck4wCTNSJDTHE9PmyqXu_zCu6HdkIPQtNrudsCX2MfaDIAoiqKXRdF5mOCC5XwY4SRYgisincPr58caaNEtDSV9jMMmZVP11NoG9QiGjdGnbzQlp1U40y4o9sXxiHC8N8X8BQ3VOCg">