From 89924bda51d2a170c23ab18e1c8efa7bab57f162 Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Fri, 12 Nov 2021 16:46:58 +0000 Subject: [PATCH] Always type '$clog2' as signed 32 --- src/V3AstNodes.h | 4 +++- src/V3Width.cpp | 5 +---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/V3AstNodes.h b/src/V3AstNodes.h index 8b258db0a..f86f8e350 100644 --- a/src/V3AstNodes.h +++ b/src/V3AstNodes.h @@ -6139,7 +6139,9 @@ public: class AstCLog2 final : public AstNodeUniop { public: AstCLog2(FileLine* fl, AstNode* lhsp) - : ASTGEN_SUPER_CLog2(fl, lhsp) {} + : ASTGEN_SUPER_CLog2(fl, lhsp) { + dtypeSetSigned32(); + } ASTNODE_NODE_FUNCS(CLog2) virtual void numberOperate(V3Number& out, const V3Number& lhs) override { out.opCLog2(lhs); } virtual string emitVerilog() override { return "%f$clog2(%l)"; } diff --git a/src/V3Width.cpp b/src/V3Width.cpp index c98e856aa..446f20ed8 100644 --- a/src/V3Width.cpp +++ b/src/V3Width.cpp @@ -1248,10 +1248,7 @@ private: } } virtual void visit(AstCLog2* nodep) override { - if (m_vup->prelim()) { - iterateCheckSizedSelf(nodep, "LHS", nodep->lhsp(), SELF, BOTH); - nodep->dtypeSetSigned32(); - } + if (m_vup->prelim()) { iterateCheckSizedSelf(nodep, "LHS", nodep->lhsp(), SELF, BOTH); } } virtual void visit(AstPow* nodep) override { // Pow is special, output sign only depends on LHS sign, but