diff options
author | Martin Sebor <msebor@redhat.com> | 2021-02-24 08:57:59 -0700 |
---|---|---|
committer | Martin Sebor <msebor@redhat.com> | 2021-02-24 08:57:59 -0700 |
commit | ea5a82df9ba0c9d23e386290d24fc920968a8695 (patch) | |
tree | 7db76ee52ea00e84163529642ee5a95adbe81c05 /gcc | |
parent | 6c35e79b47ab582e18d851f6c5df776bac766eaf (diff) | |
download | gcc-ea5a82df9ba0c9d23e386290d24fc920968a8695.zip gcc-ea5a82df9ba0c9d23e386290d24fc920968a8695.tar.gz gcc-ea5a82df9ba0c9d23e386290d24fc920968a8695.tar.bz2 |
PR middle-end/97172 - ICE: tree code 'ssa_name' is not supported in LTO streams
gcc/ChangeLog:
PR middle-end/97172
* attribs.c (attr_access::free_lang_data): Clear attribute arg spec
from function arguments.
gcc/c/ChangeLog:
PR middle-end/97172
* c-decl.c (free_attr_access_data): Clear attribute arg spec.
gcc/testsuite/ChangeLog:
PR middle-end/97172
* gcc.dg/pr97172-2.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/attribs.c | 8 | ||||
-rw-r--r-- | gcc/c/c-decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr97172-2.c | 8 |
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/attribs.c b/gcc/attribs.c index 60933d2..16c6b12 100644 --- a/gcc/attribs.c +++ b/gcc/attribs.c @@ -2265,6 +2265,14 @@ attr_access::free_lang_data (tree attrs) *pvbnd = NULL_TREE; } } + + for (tree argspec = attrs; (argspec = lookup_attribute ("arg spec", argspec)); + argspec = TREE_CHAIN (argspec)) + { + /* Same as above. */ + tree *pvblist = &TREE_VALUE (argspec); + *pvblist = NULL_TREE; + } } /* Defined in attr_access. */ diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index a5852a3..b559ed5 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -12166,6 +12166,10 @@ free_attr_access_data () /* Iterate over all functions declared in the translation unit. */ FOR_EACH_FUNCTION (n) { + for (tree parm = DECL_ARGUMENTS (n->decl); parm; parm = TREE_CHAIN (parm)) + if (tree attrs = DECL_ATTRIBUTES (parm)) + attr_access::free_lang_data (attrs); + tree fntype = TREE_TYPE (n->decl); if (!fntype) continue; diff --git a/gcc/testsuite/gcc.dg/pr97172-2.c b/gcc/testsuite/gcc.dg/pr97172-2.c new file mode 100644 index 0000000..6f355bb --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr97172-2.c @@ -0,0 +1,8 @@ +/* PR middle-end/97172 - ICE: tree code ‘ssa_name’ is not supported in LTO + streams + { dg-do link } + { dg-options "-Wall -flto -fpic -shared" } + { dg-require-effective-target fpic } + { dg-require-effective-target lto } */ + +#include "pr97172.c" |