This patch to the Go frontend and libgo rewrites the panic/defer code from C to Go. The actual stack unwind code is still in C, but the rest of the code, notably all the memory allocation, is now in Go. The names are changed to the names used in the Go 1.7 runtime, but the code is necessarily somewhat different. The __go_makefunc_can_recover function is dropped, as the uses of it were removed by Richard Henderson's work in https://golang.org/cl/198770044. This moves more memory allocation from C to Go, which will simplify the move to the new concurrent garbage collector. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian 2016-11-22 Ian Lance Taylor * go-gcc.cc (Gcc_backend::Gcc_backend): Add builtin function __builtin_frame_address.