[LLVMdev] Remaining Compiler-RT failures in ARM

Jonathan Roelofs jonathan at codesourcery.com
Fri Oct 10 14:15:17 PDT 2014

On 10/10/14 2:40 PM, Renato Golin wrote:
> On 10 October 2014 21:31, Jonathan Roelofs <jonathan at codesourcery.com> wrote:
>> Sounds like an arm-thumb interworking veneer, generated by the linker... the
>> real function should be called 'asan_handle_no_return' (with some number of '_'
>> prefixing it. I don't remember how many get added).
> It is a veneer which has just a jump and a word after it, which points
> to a place in memory that had which I believe was the implementation
> of the asan check.
Yeah, that's what I would expect :)
> I was wondering if the no_return on that veneer was meant to jump to a
> no_return function or just that the veneer itself doesn't return
> (which would be silly).
The function is "__asan_handle_no_return()", declared in
./lib/asan/asan_interface_internal.h, implemented in ./lib/asan/asan_rtl.cc. "no
return" has nothing to do with the semantics of the asan handler itself (nor the
veneer), rather it says something about the condition that the handler cleans up.

> It's possible that the asan check has a no_return attribute but for
> some reason it returns? Wouldn't the compiler warn/err on that?
> --renato

Jon Roelofs
jonathan at codesourcery.com
CodeSourcery / Mentor Embedded

More information about the llvm-dev mailing list