From e02b4427f87be6d5f433e1965d36b3f197fca90f Mon Sep 17 00:00:00 2001 From: Owen Avery Date: Tue, 16 May 2023 00:31:38 -0400 Subject: Change return type of token_id_keyword_string gcc/rust/ChangeLog: * lex/rust-token.cc (token_id_keyword_string): Return std::string reference. * lex/rust-token.h (token_id_keyword_string): Return std::string reference. Signed-off-by: Owen Avery --- gcc/rust/lex/rust-token.cc | 13 ++++++++----- gcc/rust/lex/rust-token.h | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) (limited to 'gcc') diff --git a/gcc/rust/lex/rust-token.cc b/gcc/rust/lex/rust-token.cc index 179560d..0b5163c 100644 --- a/gcc/rust/lex/rust-token.cc +++ b/gcc/rust/lex/rust-token.cc @@ -74,20 +74,23 @@ token_id_is_keyword (TokenId id) } /* gets the string associated with a keyword */ -const char * +const std::string & token_id_keyword_string (TokenId id) { switch (id) { -#define RS_TOKEN_KEYWORD(id, str) \ - case id: \ - return str; +#define RS_TOKEN_KEYWORD(id, str_ptr) \ + case id: { \ + static const std::string str (str_ptr); \ + return str; \ + } \ + gcc_unreachable (); #define RS_TOKEN(a, b) RS_TOKEN_LIST #undef RS_TOKEN_KEYWORD #undef RS_TOKEN default: - return nullptr; + gcc_unreachable (); } } diff --git a/gcc/rust/lex/rust-token.h b/gcc/rust/lex/rust-token.h index 9dea83c..68b41f7 100644 --- a/gcc/rust/lex/rust-token.h +++ b/gcc/rust/lex/rust-token.h @@ -230,7 +230,7 @@ token_id_to_str (TokenId id); bool token_id_is_keyword (TokenId id); /* gets the string associated with a keyword */ -const char * +const std::string & token_id_keyword_string (TokenId id); // Get type hint description as a string. const char * -- cgit v1.1