From: Pierre-Emmanuel Patry Date: Tue, 29 Aug 2023 15:24:03 +0000 (+0200) Subject: gccrs: Add missing linemap to lexer X-Git-Tag: basepoints/gcc-15~2140 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1501eed45018df1365c7d2a06772ca82dca1b8fe;p=thirdparty%2Fgcc.git 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 --- 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;