[–] rhambasan 11y ago ↗ OP here. This is not actually compliant with the C standard, just a gcc extension.It is documented at [1] and according to the documentation, the code seems perfectly legal. However, calling it twice add5(2); add5(2);leads to an "Illegal instruction. Core dumped"Even stranger, calling it twice but with a different argument leads to a a segfault instead of illegal instruction: add5(5); add5(5);[1] https://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html [–] cremno 11y ago ↗ That isn't strange. From the linked page:>But this technique works only so long as the containing function (hack, in this example) does not exit.
[–] cremno 11y ago ↗ That isn't strange. From the linked page:>But this technique works only so long as the containing function (hack, in this example) does not exit.
2 comments
[ 4.8 ms ] story [ 20.3 ms ] threadIt is documented at [1] and according to the documentation, the code seems perfectly legal. However, calling it twice add5(2); add5(2);
leads to an "Illegal instruction. Core dumped"
Even stranger, calling it twice but with a different argument leads to a a segfault instead of illegal instruction: add5(5); add5(5);
[1] https://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html
>But this technique works only so long as the containing function (hack, in this example) does not exit.