Issue #10290 has been updated by Jack Nagel.


I can reproduce it with gcc 4.9.1 at `-Os`:

```
 $ gcc-4.9 --version
gcc-4.9 (Homebrew gcc 4.9.1) 4.9.1
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ make clean && ./configure --disable-install-doc CC=gcc-4.9 CFLAGS=-Os && make -j12
$ ./miniruby -v
ruby 2.2.0dev (2014-10-16 trunk 47971) [x86_64-darwin13]
$ ./miniruby -e "l = -> { l.() }; begin; l.(); rescue SystemStackError; l.(); end"
Segmentation fault: 11
```

----------------------------------------
Bug #10290: segfault when calling a lambda recursively after rescuing SystemStackError
https://bugs.ruby-lang.org/issues/10290#change-49477

* Author: Jack Nagel
* Status: Feedback
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.1.3p242 (2014-09-19 revision 47629) [x86_64-darwin13.0]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
The following code segfaults on Ruby 2.1.3:

```
l = -> { l.() }

begin
  l.()
rescue SystemStackError
  l.() # segfault
end
```

the issue does not occur on trunk.

---Files--------------------------------
ruby_2014-09-25-000925_haswell.log (46.4 KB)
ruby_2014-09-25-001644_haswell.log (46.8 KB)


-- 
https://bugs.ruby-lang.org/