News for hackers. Stuff that matters.
Re:Clojures in C by rhambasan on Wednesday April 08, 2015 @05:23PM (#9344100)
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

Re:Clojures in C by cremno on Wednesday April 08, 2015 @06:18PM (#9344470)
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.