[llvm-dev] lld/lto/win32 crash on DIE code

Evgeny Leviant via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 20 04:40:53 PDT 2018


This one triggers an assertion in calculateSEHStateNumbers due to weird catchpad instruction
in @_island_debug_invoke and many other functions. The code expects either pointer to a filter
function or null in first operand, while you're passing pointer to structure:

catchpad within %80 [{i8*, i8*}* anon..., ...]

________________________________________
От: Carlo Kok <ck at remobjects.com>
Отправлено: 20 марта 2018 г. 11:04
Кому: Evgeny Leviant; llvm-dev at lists.llvm.org
Тема: Re: [llvm-dev] lld/lto/win32 crash on DIE code

Op 16-3-2018 om 20:16 schreef Evgeny Leviant:
> Hello Carlo,
>
> I tried your reproducer and faced different problem from one you described
> (I'm using MacOS Sierra and lld built from trunk on Mar, 15). The crash happens
> when SelectionDAGBuilder::lowerInvokable tries to access EH info of this function:
>
> ms_t26_RemObjects_d_Elements_d_EUnit_d_Runnerb_RunChildrennt2a_RemObjects_d_Elements_d_EUnit_d_RunContext
>
> This happens because LLVM doesn't know your personality function (@_elements_exception_handler), so I suggest looking
> at llvm::classifyEHPersonality function as well.
>

hi,

I've updated my testcase
https://www.dropbox.com/s/ugv9sfqouhlszff/repro.tar?dl=0

to use the standard exception handler. Now it fails with llvm-6.0 from
the website exactly the same as it does with my custom build.


More information about the llvm-dev mailing list