Module Name: src Committed By: christos Date: Fri Dec 11 18:25:45 UTC 2020
Modified Files: src/external/gpl3/gdb/dist/gdb: c-exp.y Log Message: 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.) To generate a diff of this commit: cvs rdiff -u -r1.1.1.9 -r1.2 src/external/gpl3/gdb/dist/gdb/c-exp.y Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gdb/dist/gdb/c-exp.y diff -u src/external/gpl3/gdb/dist/gdb/c-exp.y:1.1.1.9 src/external/gpl3/gdb/dist/gdb/c-exp.y:1.2 --- src/external/gpl3/gdb/dist/gdb/c-exp.y:1.1.1.9 Mon Sep 14 21:43:28 2020 +++ src/external/gpl3/gdb/dist/gdb/c-exp.y Fri Dec 11 13:25:45 2020 @@ -2608,6 +2608,8 @@ static bool last_was_structop; /* 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 @@ lex_one_token (struct parser_state *par_ 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 @@ lex_one_token (struct parser_state *par_ /* 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'. */