Loading debuggerd/debuggerd_test.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -603,11 +603,10 @@ TEST_P(SizeParamCrasherTest, mte_underflow) { } __attribute__((noinline)) void mte_illegal_setjmp_helper(jmp_buf& jump_buf) { // Because the detection of illegal setjmp is done relative to the SP in setjmp, // we need to make sure this stack frame is bigger than the one of setjmp. // TODO(fmayer): fix that bug and remove the workaround. volatile char buf[1024]; buf[0] = '1'; // This frame is at least 8 bytes for storing and restoring the LR before the // setjmp below. So this can never get an empty stack frame, even if we omit // the frame pointer. So, the SP of this is always less (numerically) than the // calling function frame. setjmp(jump_buf); } Loading Loading
debuggerd/debuggerd_test.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -603,11 +603,10 @@ TEST_P(SizeParamCrasherTest, mte_underflow) { } __attribute__((noinline)) void mte_illegal_setjmp_helper(jmp_buf& jump_buf) { // Because the detection of illegal setjmp is done relative to the SP in setjmp, // we need to make sure this stack frame is bigger than the one of setjmp. // TODO(fmayer): fix that bug and remove the workaround. volatile char buf[1024]; buf[0] = '1'; // This frame is at least 8 bytes for storing and restoring the LR before the // setjmp below. So this can never get an empty stack frame, even if we omit // the frame pointer. So, the SP of this is always less (numerically) than the // calling function frame. setjmp(jump_buf); } Loading