diff --git a/src/V3LinkDot.cpp b/src/V3LinkDot.cpp index 539a83d74..55f591aa8 100644 --- a/src/V3LinkDot.cpp +++ b/src/V3LinkDot.cpp @@ -3330,7 +3330,7 @@ class LinkDotResolveVisitor final : public VNVisitor { } } if (nodep->isExternProto()) { - if (!m_curSymp->findIdFallback(nodep->name()) && !nodep->isExternExplicit()) { + if (!m_curSymp->findIdFallback(nodep->name()) && nodep->isExternExplicit()) { nodep->v3error("Definition not found for extern " + nodep->prettyNameQ()); } } diff --git a/test_regress/t/t_constraint_extern.v b/test_regress/t/t_constraint_extern.v index 8a7f4602c..ec3888f08 100644 --- a/test_regress/t/t_constraint_extern.v +++ b/test_regress/t/t_constraint_extern.v @@ -11,7 +11,7 @@ class Packet; extern function void f(); constraint cone; extern constraint ctwo; - extern constraint cmissing; // Ok per IEEE 1800-2023 18.5.1 + constraint cmissing; // Ok per IEEE 1800-2023 18.5.1 endclass diff --git a/test_regress/t/t_constraint_extern_bad.out b/test_regress/t/t_constraint_extern_bad.out index da6dfe795..e63efbb03 100644 --- a/test_regress/t/t_constraint_extern_bad.out +++ b/test_regress/t/t_constraint_extern_bad.out @@ -1,6 +1,6 @@ -%Error: t/t_constraint_extern_bad.v:8:15: Definition not found for extern 'missing_bad' - 8 | constraint missing_bad; - | ^~~~~~~~~~~ +%Error: t/t_constraint_extern_bad.v:8:22: Definition not found for extern 'missing_bad' + 8 | extern constraint missing_bad; + | ^~~~~~~~~~~ %Error: t/t_constraint_extern_bad.v:11:20: extern not found that declares 'missing_extern' 11 | constraint Packet::missing_extern { } | ^~~~~~~~~~~~~~ diff --git a/test_regress/t/t_constraint_extern_bad.v b/test_regress/t/t_constraint_extern_bad.v index ebeab9acf..743d9f4b1 100644 --- a/test_regress/t/t_constraint_extern_bad.v +++ b/test_regress/t/t_constraint_extern_bad.v @@ -5,7 +5,7 @@ // SPDX-License-Identifier: CC0-1.0 class Packet; - constraint missing_bad; + extern constraint missing_bad; endclass constraint Packet::missing_extern { }