This is the middle-end and C front end parts of the gccgo related patch set first posted here.
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01009.html I've re-tested these patches in isolation and have committed them to mainline. I'm currently submitting the Go portions for the upstream review, and hope to have to libffi merge complete soon. I think it's important that the change to Go using the static chain happen before gcc5, as it represents an ABI change. Our next opportunity to fix the bulk of the non-x86 targets would be gcc6 in a year's time. r~ Richard Henderson (3): Make TARGET_STATIC_CHAIN allow a function type Allow the front-end to create calls with a static chain Allow the static chain to be set from C gcc/ChangeLog | 27 ++++++++++++++++++++++++++ gcc/c-family/c-common.c | 2 ++ gcc/c-family/c-common.h | 2 +- gcc/c/c-parser.c | 40 ++++++++++++++++++++++++++++++++++++++ gcc/calls.c | 14 ++++++++------ gcc/config/i386/i386.c | 19 ++++++++++++------ gcc/config/moxie/moxie.c | 5 +---- gcc/config/xtensa/xtensa.c | 2 +- gcc/doc/extend.texi | 13 +++++++++++++ gcc/doc/tm.texi | 2 +- gcc/gimple-fold.c | 21 ++++++++++++++++++++ gcc/gimplify.c | 17 +++++++++++++++- gcc/target.def | 6 +++--- gcc/targhooks.c | 5 +---- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/cwsc0.c | 16 +++++++++++++++ gcc/testsuite/gcc.dg/cwsc1.c | 46 ++++++++++++++++++++++++++++++++++++++++++++ gcc/tree-cfg.c | 22 +++++++-------------- 18 files changed, 222 insertions(+), 42 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/cwsc0.c create mode 100644 gcc/testsuite/gcc.dg/cwsc1.c -- 1.9.3