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. 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). 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
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. Cheers, Jon> > 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
On 10 October 2014 22:15, Jonathan Roelofs <jonathan at codesourcery.com> wrote:> 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.Ok, I looked through and can't see any obvious problem, and it seems is also occurring in PPC, so I updated the bug with a link to this thread, so whomever tries to fix this in the future gets a head start. Marking the test non-ARM. cheers, --renato