Damien George 1cf0ce094a
py/nlr: Use MP_UNREACHABLE at the end of arch-specific nlr_jump funcs.
Recent versions of gcc perform optimisations which can lead to the
following code from the MP_NLR_JUMP_HEAD macro being omitted:

    top->ret_val = val; \
    MP_NLR_RESTORE_PYSTACK(top); \
    *_top_ptr = top->prev; \

This is noticeable (at least) in the unix coverage on x86-64 built with gcc
9.1.0.  This is because the nlr_jump function is marked as no-return, so
gcc deduces that the above code has no effect.

Adding MP_UNREACHABLE tells the compiler that the asm code may branch
elsewhere, and so it cannot optimise away the code.
2019-12-12 11:01:40 -08:00
..
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2018-08-09 13:29:30 -07:00
2018-08-16 17:41:35 -07:00
2018-07-28 13:29:47 -04:00
2018-08-09 13:29:30 -07:00
2019-04-05 21:38:32 +02:00
2018-07-11 16:45:30 -04:00
2018-07-11 16:45:30 -04:00
2018-10-18 10:37:42 -07:00
2019-04-05 21:41:40 +02:00
2018-10-07 19:37:49 +02:00
2018-11-13 22:04:44 +01:00
2017-07-18 11:57:39 +10:00
2018-07-12 14:13:51 -04:00
2019-01-18 11:53:09 -08:00
2019-01-20 17:32:43 -08:00
2019-01-14 18:09:02 -08:00
2019-11-05 17:49:47 -08:00
2019-04-05 21:40:28 +02:00
2019-01-20 16:18:34 -08:00
2018-08-09 13:29:30 -07:00
2019-12-05 13:06:10 -06:00
2018-08-07 14:58:57 -07:00
2018-05-14 17:41:17 -04:00
2018-05-14 17:41:17 -04:00
2019-10-21 18:57:03 -07:00
2018-07-11 16:45:30 -04:00
2019-11-20 14:02:15 -08:00
2018-07-11 16:45:30 -04:00
2019-10-21 18:57:03 -07:00