https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100734
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #6) > (In reply to Richard Biener from comment #3) > > Possibly a dup of PR100727? > > I think it is unrelated. > > The problem is the fix for PR 100619, sets the attributes to be "+" but the > code in attribs.c, skip over the '+' but does not check if it is the end of > the string: This patch might fix the ICE (sorry for the tab to spaces): diff --git a/gcc/attribs.c b/gcc/attribs.c index ebc0783c439..4adbe9fed5e 100644 --- a/gcc/attribs.c +++ b/gcc/attribs.c @@ -2140,7 +2140,10 @@ init_attr_rdwr_indices (rdwr_map *rwm, tree attrs) /* Skip the internal-only plus sign. */ if (*m == '+') - ++m; + { + ++m; + continue; + } acc.str = m; acc.mode = acc.from_mode_char (*m);