From 1501eed45018df1365c7d2a06772ca82dca1b8fe Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Tue, 29 Aug 2023 17:24:03 +0200 Subject: [PATCH] gccrs: Add missing linemap to lexer When some proc macro create tokens and later have some code referring to those created tokens the code was missing a linemap since the pointer was null, throwing an ICE. gcc/rust/ChangeLog: * expand/rust-proc-macro.cc (tokenstream_from_string): Change linemap null pointer to the current linemap. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/expand/rust-proc-macro.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/rust/expand/rust-proc-macro.cc b/gcc/rust/expand/rust-proc-macro.cc index f0f6d65f8cf9..2fdfcb20b19b 100644 --- a/gcc/rust/expand/rust-proc-macro.cc +++ b/gcc/rust/expand/rust-proc-macro.cc @@ -16,6 +16,7 @@ #include "rust-diagnostics.h" #include "rust-proc-macro.h" +#include "rust-session-manager.h" #include "rust-lex.h" #include "rust-token-converter.h" #include "rust-attributes.h" @@ -68,7 +69,7 @@ ProcMacro::TokenStream tokenstream_from_string (std::string &data, bool &lex_error) { // FIXME: Insert location pointing to call site in tokens - Lexer lex (data, nullptr); + Lexer lex (data, Session::get_instance ().linemap); std::vector tokens; TokenPtr ptr; -- 2.47.2