diff options
author | Ayke van Laethem <aykevanlaethem@gmail.com> | 2018-02-13 22:00:20 +0100 |
---|---|---|
committer | Ayke van Laethem <aykevanlaethem@gmail.com> | 2018-02-18 01:35:27 +0100 |
commit | 5591bd237a69a3a1a6ac03cb1dc9edcde835f708 (patch) | |
tree | e60a82ad3cffca3847a4212f7e918bcb7e476ad0 /py/pystack.c | |
parent | 60c6b880fa4077a05d1273606d41fdc33f06bc2b (diff) |
py/nlrthumb: Do not mark nlr_push as not returning anything.
By adding __builtin_unreachable() at the end of nlr_push, we're
essentially telling the compiler that this function will never return.
When GCC LTO is in use, this means that any time nlr_push() is called
(which is often), the compiler thinks this function will never return
and thus eliminates all code following the call.
Note: I've added a 'return 0' for older GCC versions like 4.6 which
complain about not returning anything (which doesn't make sense in a
naked function). Newer GCC versions (tested 4.8, 5.4 and some others)
don't complain about this.
Diffstat (limited to 'py/pystack.c')
0 files changed, 0 insertions, 0 deletions