diff options
author | Tom de Vries <tdevries@suse.de> | 2023-08-14 18:32:29 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-08-14 18:32:29 +0200 |
commit | 9972aac27d5d664a29abc88acd3a84c1e72064c4 (patch) | |
tree | a717d488960f10226be6610a1ce6247d96a039f3 /gdb/go-exp.y | |
parent | 6a93ab8af49be41a44af1b4651e9ab2ebc6d2f77 (diff) | |
download | gdb-9972aac27d5d664a29abc88acd3a84c1e72064c4.zip gdb-9972aac27d5d664a29abc88acd3a84c1e72064c4.tar.gz gdb-9972aac27d5d664a29abc88acd3a84c1e72064c4.tar.bz2 |
[gdb/build] Fix struct token_and_value odr violation
When build gdb with -O2 -flto I run into:
...
gdb/c-exp.y:3003:8: warning: type 'struct token_and_value' violates the C++ \
One Definition Rule [-Wodr]
struct token_and_value
^
gdb/d-exp.y:1310:8: note: a different type is defined in another translation \
unit
struct token_and_value
^
...
Fix this by renaming to c_token_and_value and d_token_and_value.
Likewise in gdb/go-exp.y, renaming to go_token_and_value.
Tested on x86_64-linux.
Approved-By: Tom Tromey <tom@tromey.com>
PR build/22395
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
Diffstat (limited to 'gdb/go-exp.y')
-rw-r--r-- | gdb/go-exp.y | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gdb/go-exp.y b/gdb/go-exp.y index 5c213f1..92abd95 100644 --- a/gdb/go-exp.y +++ b/gdb/go-exp.y @@ -1245,7 +1245,7 @@ lex_one_token (struct parser_state *par_state) } /* An object of this type is pushed on a FIFO by the "outer" lexer. */ -struct token_and_value +struct go_token_and_value { int token; YYSTYPE value; @@ -1253,7 +1253,7 @@ struct token_and_value /* A FIFO of tokens that have been read but not yet returned to the parser. */ -static std::vector<token_and_value> token_fifo; +static std::vector<go_token_and_value> token_fifo; /* Non-zero if the lexer should return tokens from the FIFO. */ static int popping; @@ -1445,11 +1445,11 @@ classify_name (struct parser_state *par_state, const struct block *block) static int yylex (void) { - token_and_value current, next; + go_token_and_value current, next; if (popping && !token_fifo.empty ()) { - token_and_value tv = token_fifo[0]; + go_token_and_value tv = token_fifo[0]; token_fifo.erase (token_fifo.begin ()); yylval = tv.value; /* There's no need to fall through to handle package.name @@ -1474,7 +1474,7 @@ yylex (void) if (next.token == '.') { - token_and_value name2; + go_token_and_value name2; name2.token = lex_one_token (pstate); name2.value = yylval; |