From eb80db9397d20fbb827eac03ce78f42a82dacbdc Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sun, 10 Aug 2025 08:38:26 -0400 Subject: [PATCH] Clarify extern error message --- src/V3LinkDot.cpp | 6 ++++-- test_regress/t/t_class_extern_bad.out | 4 ++-- test_regress/t/t_constraint_extern_bad.out | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/V3LinkDot.cpp b/src/V3LinkDot.cpp index 641e57355..fa3a765bb 100644 --- a/src/V3LinkDot.cpp +++ b/src/V3LinkDot.cpp @@ -3717,7 +3717,8 @@ class LinkDotResolveVisitor final : public VNVisitor { } if (nodep->isExternProto()) { if (!m_curSymp->findIdFallback(nodep->name()) && nodep->isExternExplicit()) { - nodep->v3error("Definition not found for extern " + nodep->prettyNameQ()); + nodep->v3error("Definition not found for extern prototype " + + nodep->prettyNameQ()); } } VL_RESTORER(m_curSymp); @@ -4286,7 +4287,8 @@ class LinkDotResolveVisitor final : public VNVisitor { } if (nodep->isExternProto()) { if (!m_curSymp->findIdFallback(nodep->name())) { - nodep->v3error("Definition not found for extern " + nodep->prettyNameQ()); + nodep->v3error("Definition not found for extern prototype " + + nodep->prettyNameQ()); } } VL_RESTORER(m_curSymp); diff --git a/test_regress/t/t_class_extern_bad.out b/test_regress/t/t_class_extern_bad.out index fef3a2036..785b44d9e 100644 --- a/test_regress/t/t_class_extern_bad.out +++ b/test_regress/t/t_class_extern_bad.out @@ -5,10 +5,10 @@ 8 | extern task nodef(); | ^~~~~ ... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance. -%Error: t/t_class_extern_bad.v:8:16: Definition not found for extern 'nodef' +%Error: t/t_class_extern_bad.v:8:16: Definition not found for extern prototype 'nodef' 8 | extern task nodef(); | ^~~~~ -%Error: t/t_class_extern_bad.v:9:16: Definition not found for extern 'nodef' +%Error: t/t_class_extern_bad.v:9:16: Definition not found for extern prototype 'nodef' 9 | extern task nodef(); | ^~~~~ %Error: t/t_class_extern_bad.v:12:6: extern not found that declares 'noproto' diff --git a/test_regress/t/t_constraint_extern_bad.out b/test_regress/t/t_constraint_extern_bad.out index 73b10b4f8..2e6c8787f 100644 --- a/test_regress/t/t_constraint_extern_bad.out +++ b/test_regress/t/t_constraint_extern_bad.out @@ -1,4 +1,4 @@ -%Error: t/t_constraint_extern_bad.v:8:22: Definition not found for extern 'missing_bad' +%Error: t/t_constraint_extern_bad.v:8:22: Definition not found for extern prototype 'missing_bad' 8 | extern constraint missing_bad; | ^~~~~~~~~~~ ... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance.