aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorliushuyu <liushuyu011@gmail.com>2022-09-02 16:08:39 -0600
committerArthur Cohen <arthur.cohen@embecosm.com>2023-01-31 14:16:52 +0100
commite88ce5cc68478d20133bc3afd9f4d24a3db47007 (patch)
treeeadf2da074a60f2d17fc6fe4be3d0064eb6c3ca4 /gcc/rust/backend
parent9d6b434e1fda4aaf853728967a6c0f65e7d20d3d (diff)
downloadgcc-e88ce5cc68478d20133bc3afd9f4d24a3db47007.zip
gcc-e88ce5cc68478d20133bc3afd9f4d24a3db47007.tar.gz
gcc-e88ce5cc68478d20133bc3afd9f4d24a3db47007.tar.bz2
gccrs: expand: eager evaluate macros inside builtin macros
gcc/rust/ChangeLog: * ast/rust-ast.h (class MacroInvocData): Store expander as member of the class. (class Expr): Add `is_literal` virtual method * ast/rust-expr.h: Override `is_literal` for `LiteralExpr`s. * expand/rust-macro-builtins.cc (try_expand_macro_expression): New function. (try_extract_string_literal_from_fragment): Likewise. (try_expand_single_string_literal): Likewise. (try_expand_many_expr): Likewise. (parse_single_string_literal): Add macro expander as argument. (MacroBuiltin::include_bytes): Pass expander as argument to `parse_single_string_literal`. (MacroBuiltin::include_str): Likewise. (MacroBuiltin::compile_error): Likewise. (MacroBuiltin::include): Likewise. (MacroBuiltin::concat): Likewise and add better error handling. (MacroBuiltin::env): Likewise. * expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Expand invocations recursively. gcc/testsuite/ChangeLog: * rust/compile/builtin_macro_concat.rs: Fix test error messages. * rust/compile/builtin_macro_env.rs: Likewise. Signed-off-by: Zixing Liu <liushuyu011@gmail.com>
Diffstat (limited to 'gcc/rust/backend')
0 files changed, 0 insertions, 0 deletions