diff options
author | liushuyu <liushuyu011@gmail.com> | 2022-09-02 16:08:39 -0600 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-01-31 14:16:52 +0100 |
commit | e88ce5cc68478d20133bc3afd9f4d24a3db47007 (patch) | |
tree | eadf2da074a60f2d17fc6fe4be3d0064eb6c3ca4 /gcc/rust/backend | |
parent | 9d6b434e1fda4aaf853728967a6c0f65e7d20d3d (diff) | |
download | gcc-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