Since __builtin_setjmp has been fixed by rL267943, the test now works
on PowerPC. Enable it.
On the other hand, the SystemZ backend doesn't currently support
__builtin_setjmp. Disable it.
Differential D19657
[ASan] Reenable __builtin_setjmp test on PowerPC, disable on SystemZ. • koriakin on Apr 28 2016, 6:56 AM. Authored by
Details Since __builtin_setjmp has been fixed by rL267943, the test now works On the other hand, the SystemZ backend doesn't currently support
Diff Detail
Event TimelineComment Actions That's not true. __builtin_longjmp is (currently) supported on X86, PowerPC and ARM. Support for SPARC is currently being worked on. Comment Actions Hm, fair enough. I'll try to figure out what's wrong with this test on PowerPC, then. Comment Actions Ugh, clang miscompiles __builtin_setjmp on PowerPC when using internal assembler - there's a stray 0 word in the code section, seems it tries to print an invalid MachineInstr somehow. I'll fix that. However, I'm not sure about ARM - the emitted code looks OK to me, and I don't have the hardware to run the test. Could someone shed some light here? Btw, what's so useful about __builtin_longjmp/setjmp that someone's implementing it on SPARC? I thought it was just an ancient exception handling artifact... Comment Actions Since the test can actually work on multiple platforms (all of them presumably, given support from backend), let's keep the blacklist. However, disable it for the upcoming SystemZ port, which currently doesn't support the builtin, and reenable it for PowerPC, whose builtin has just been fixed. Comment Actions Turns out this file doesn't include sanitizer_common.h, so we can't use SANITIZER_* defines - fixed to use s390 and friends. |