diff options
author | Richard Henderson <rth@redhat.com> | 2014-11-20 06:13:04 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2014-11-20 06:13:04 -0800 |
commit | ad1048a5287c73ce13fac4183dfc01811943e791 (patch) | |
tree | 8c81407600a06cdf41b7c392c15db9b0c20c10c5 | |
parent | f8b756b74c2ef815ab2d6164ccc97dc32578cf8c (diff) | |
download | gcc-ad1048a5287c73ce13fac4183dfc01811943e791.zip gcc-ad1048a5287c73ce13fac4183dfc01811943e791.tar.gz gcc-ad1048a5287c73ce13fac4183dfc01811943e791.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9aaac25..1c6a04d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-11-20 Richard Henderson <rth@redhat.com> + + PR target/63977 + * config/i386/i386.c (ix86_static_chain): Reinstate the check + for DECL_STATIC_CHAIN. + 2014-11-20 Tejas Belagod <tejas.belagod@arm.com> * config/aarch64/aarch64-protos.h (aarch64_classify_symbol): diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index fffddfc..6c8dbd6 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. */ |