From: collison Date: Thu, 24 Sep 2015 23:26:50 +0000 (+0000) Subject: 2015-09-24 Michael Collison X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b6205e1fdb5e2389d59f27e20b657f3db480fd65;p=thirdparty%2Fgcc.git 2015-09-24 Michael Collison PR other/57195 * read-md.c (read_name): Allow mode iterators inside angle brackets in rtl expressions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228102 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e951934a80be..29c4245ec307 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-09-24 Michael Collison + + PR other/57195 + * read-md.c (read_name): Allow mode iterators inside angle + brackets in rtl expressions. + 2015-09-24 Vladimir Makarov PR target/61578 diff --git a/gcc/read-md.c b/gcc/read-md.c index 9f158ec2b7f3..e26e4a6a12f4 100644 --- a/gcc/read-md.c +++ b/gcc/read-md.c @@ -399,20 +399,31 @@ read_name (struct md_name *name) { int c; size_t i; + int angle_bracket_depth; c = read_skip_spaces (); i = 0; + angle_bracket_depth = 0; while (1) { + if (c == '<') + angle_bracket_depth++; + + if ((c == '>') && (angle_bracket_depth > 0)) + angle_bracket_depth--; + if (c == ' ' || c == '\n' || c == '\t' || c == '\f' || c == '\r' || c == EOF) break; - if (c == ':' || c == ')' || c == ']' || c == '"' || c == '/' - || c == '(' || c == '[') + if (angle_bracket_depth == 0) { - unread_char (c); - break; + if (c == ':' || c == ')' || c == ']' + || c == '"' || c == '/' || c == '(' || c == '[') + { + unread_char (c); + break; + } } if (i == sizeof (name->buffer) - 1)