diff options
Diffstat (limited to 'gdb/f-exp.y')
-rw-r--r-- | gdb/f-exp.y | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gdb/f-exp.y b/gdb/f-exp.y index 33c7418..8e94174 100644 --- a/gdb/f-exp.y +++ b/gdb/f-exp.y @@ -1175,9 +1175,13 @@ yylex (void) { char *tmp = copy_name (yylval.sval); struct symbol *sym; - int is_a_field_of_this = 0; + struct field_of_this_result is_a_field_of_this; int hextype; + /* Initialize this in case we *don't* use it in this call; that + way we can refer to it unconditionally below. */ + memset (&is_a_field_of_this, 0, sizeof (is_a_field_of_this)); + sym = lookup_symbol (tmp, expression_context_block, VAR_DOMAIN, parse_language->la_language == language_cplus @@ -1205,14 +1209,14 @@ yylex (void) if (hextype == INT) { yylval.ssym.sym = sym; - yylval.ssym.is_a_field_of_this = is_a_field_of_this; + yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL; return NAME_OR_INT; } } /* Any other kind of symbol */ yylval.ssym.sym = sym; - yylval.ssym.is_a_field_of_this = is_a_field_of_this; + yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL; return NAME; } } |