mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-18 09:50:33 +08:00
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.
This commit is contained in:
parent
6c35e79b47
commit
ea5a82df9b
@ -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. */
|
||||
|
@ -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;
|
||||
|
8
gcc/testsuite/gcc.dg/pr97172-2.c
Normal file
8
gcc/testsuite/gcc.dg/pr97172-2.c
Normal file
@ -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"
|
Loading…
x
Reference in New Issue
Block a user