From ad1048a5287c73ce13fac4183dfc01811943e791 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 20 Nov 2014 06:13:04 -0800 Subject: [PATCH] re PR target/63977 (r217769 caused many failures) PR target/63977 * config/i386/i386.c (ix86_static_chain): Reinstate the check for DECL_STATIC_CHAIN. From-SVN: r217853 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9aaac254e9d..1c6a04dcfdc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-11-20 Richard Henderson + + PR target/63977 + * config/i386/i386.c (ix86_static_chain): Reinstate the check + for DECL_STATIC_CHAIN. + 2014-11-20 Tejas Belagod * config/aarch64/aarch64-protos.h (aarch64_classify_symbol): diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index fffddfc7311..6c8dbd66811 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -27360,6 +27360,12 @@ ix86_static_chain (const_tree fndecl_or_type, bool incoming_p) { unsigned regno; + /* While this function won't be called by the middle-end when a static + chain isn't needed, it's also used throughout the backend so it's + easiest to keep this check centralized. */ + if (DECL_P (fndecl_or_type) && !DECL_STATIC_CHAIN (fndecl_or_type)) + return NULL; + if (TARGET_64BIT) { /* We always use R10 in 64-bit mode. */ -- 2.30.2