Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl3/gdb/dist/gdb PR/55851: Martin Husemann: recogn...



details:   https://anonhg.NetBSD.org/src/rev/3501c26975d2
branches:  trunk
changeset: 979019:3501c26975d2
user:      christos <christos%NetBSD.org@localhost>
date:      Fri Dec 11 18:25:45 2020 +0000

description:
PR/55851: Martin Husemann: recognize <symbol>.part.<n> names
This is gross; perhaps we should hide them completely (not print them
in stack traces etc.)

diffstat:

 external/gpl3/gdb/dist/gdb/c-exp.y |  11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diffs (35 lines):

diff -r 6e7ad5eea289 -r 3501c26975d2 external/gpl3/gdb/dist/gdb/c-exp.y
--- a/external/gpl3/gdb/dist/gdb/c-exp.y        Fri Dec 11 18:23:25 2020 +0000
+++ b/external/gpl3/gdb/dist/gdb/c-exp.y        Fri Dec 11 18:25:45 2020 +0000
@@ -2608,6 +2608,8 @@
 /* Depth of parentheses.  */
 static int paren_depth;
 
+static const char PART[] = ".part.";
+
 /* Read one token, getting characters through lexptr.  */
 
 static int
@@ -2723,6 +2725,13 @@
       return c;
 
     case '.':
+      /* Gross! recognize <symbol>.part.N */
+      if (strncmp(pstate->lexptr, PART, sizeof(PART) - 1) == 0 &&
+       ISDIGIT(pstate->lexptr[sizeof(PART) - 1]) &&
+       pstate->lexptr[sizeof(PART)] == '\0')
+       {
+         break;
+       }
       /* Might be a floating point number.  */
       if (pstate->lexptr[1] < '0' || pstate->lexptr[1] > '9')
        {
@@ -2888,7 +2897,7 @@
   /* It's a name.  See how long it is.  */
   namelen = 0;
   for (c = tokstart[namelen];
-       (c == '_' || c == '$' || c_ident_is_alnum (c) || c == '<');)
+       (c == '_' || c == '$' || c == '.' || c_ident_is_alnum (c) || c == '<');)
     {
       /* Template parameter lists are part of the name.
         FIXME: This mishandles `print $a<4&&$a>3'.  */



Home | Main Index | Thread Index | Old Index