aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/resolve')
-rw-r--r--gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
index 72c3560..3b1ccc1 100644
--- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
@@ -91,7 +91,7 @@ insert_macros (std::vector<PROC_MACRO> &macros, NameResolutionContext &ctx)
{
auto res = ctx.macros.insert (macro.get_name (), macro.get_node_id ());
- if (!res)
+ if (!res && res.error ().existing != macro.get_node_id ())
{
rust_error_at (UNKNOWN_LOCATION, ErrorCode::E0428,
"macro %qs defined multiple times",
@@ -167,7 +167,7 @@ TopLevel::visit (AST::MacroRulesDefinition &macro)
{
auto res = ctx.macros.insert_at_root (macro.get_rule_name (),
macro.get_node_id ());
- if (!res)
+ if (!res && res.error ().existing != macro.get_node_id ())
{
// TODO: Factor this
rich_location rich_loc (line_table, macro.get_locus ());