From 9d5004db1c6e78f4fc7d733281b0a25ac5b8dfcd Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Thu, 6 Jul 2017 19:49:34 -0400 Subject: [PATCH] Fix GCC 7 warnings. --- include/verilated.cpp | 3 +++ include/verilated_vpi.cpp | 7 +++---- include/verilated_vpi.h | 28 ++++++++++++++-------------- src/V3PreProc.cpp | 1 + 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/include/verilated.cpp b/include/verilated.cpp index fb451fd21..d6196159c 100644 --- a/include/verilated.cpp +++ b/include/verilated.cpp @@ -500,6 +500,7 @@ void _vl_vsformat(string& output, const char* formatp, va_list ap) { output += (char)((lwp[i] >> 16) & 0xff); output += (char)((lwp[i] >> 24) & 0xff); } + break; case 'z': // Packed 4-state output.reserve(output.size() + 8*VL_WORDS_I(lbits)); for (int i=0; i> 24) & 0xff); output += "\0\0\0\0"; // No tristate } + break; case 'v': // Strength; assume always strong for (lsb=lbits-1; lsb>=0; --lsb) { if ((lwp[VL_BITWORD_I(lsb)]>>VL_BITBIT_I(lsb)) & 1) output += "St1 "; else output += "St0 "; } + break; case 'x': for (; lsb>=0; --lsb) { lsb = (lsb / 4) * 4; // Next digit diff --git a/include/verilated_vpi.cpp b/include/verilated_vpi.cpp index c23d17ba1..9ca7dc05f 100644 --- a/include/verilated_vpi.cpp +++ b/include/verilated_vpi.cpp @@ -946,11 +946,10 @@ void vpi_get_value(vpiHandle object, p_vpi_value value_p) { case VLVT_UINT32: value_p->value.integer = *((IData*)(vop->varDatap())); return; - case VLVT_WDATA: - case VLVT_UINT64: - // Not legal - value_p->value.integer = 0; + case VLVT_WDATA: // FALLTHRU + case VLVT_UINT64: // FALLTHRU default: + value_p->value.integer = 0; _VL_VPI_ERROR(__FILE__, __LINE__, "%s: Unsupported format (%s) for %s", VL_FUNC, VerilatedVpiError::strFromVpiVal(value_p->format), vop->fullname()); return; diff --git a/include/verilated_vpi.h b/include/verilated_vpi.h index cd473cb33..9f3b97085 100644 --- a/include/verilated_vpi.h +++ b/include/verilated_vpi.h @@ -99,8 +99,8 @@ public: virtual const char* name() { return ""; } virtual const char* fullname() { return ""; } virtual const char* defname() { return ""; } - virtual const vluint32_t type() { return 0; } - virtual const vluint32_t size() const { return 0; } + virtual vluint32_t type() { return 0; } + virtual vluint32_t size() const { return 0; } virtual const VerilatedRange* rangep() const { return NULL; } virtual vpiHandle dovpi_scan() { return 0; } }; @@ -120,7 +120,7 @@ public: } virtual ~VerilatedVpioCb() {} static inline VerilatedVpioCb* castp(vpiHandle h) { return dynamic_cast((VerilatedVpio*)h); } - virtual const vluint32_t type() { return vpiCallback; } + virtual vluint32_t type() { return vpiCallback; } vluint32_t reason() const { return m_cbData.reason; } VerilatedPliCb cb_rtnp() const { return m_cbData.cb_rtn; } t_cb_data* cb_datap() { return &(m_cbData); } @@ -133,7 +133,7 @@ public: explicit VerilatedVpioConst(vlsint32_t num) : m_num(num) {} virtual ~VerilatedVpioConst() {} static inline VerilatedVpioConst* castp(vpiHandle h) { return dynamic_cast((VerilatedVpio*)h); } - virtual const vluint32_t type() { return vpiUndefined; } + virtual vluint32_t type() { return vpiUndefined; } vlsint32_t num() const { return m_num; } }; @@ -144,8 +144,8 @@ public: explicit VerilatedVpioRange(const VerilatedRange* range) : m_range(range), m_iteration(0) {} virtual ~VerilatedVpioRange() {} static inline VerilatedVpioRange* castp(vpiHandle h) { return dynamic_cast((VerilatedVpio*)h); } - virtual const vluint32_t type() { return vpiRange; } - virtual const vluint32_t size() const { return m_range->elements(); } + virtual vluint32_t type() { return vpiRange; } + virtual vluint32_t size() const { return m_range->elements(); } virtual const VerilatedRange* rangep() const { return m_range; } int iteration() const { return m_iteration; } void iterationInc() { ++m_iteration; } @@ -167,7 +167,7 @@ public: : m_scopep(scopep) {} virtual ~VerilatedVpioScope() {} static inline VerilatedVpioScope* castp(vpiHandle h) { return dynamic_cast((VerilatedVpio*)h); } - virtual const vluint32_t type() { return vpiScope; } + virtual vluint32_t type() { return vpiScope; } const VerilatedScope* scopep() const { return m_scopep; } virtual const char* name() { return m_scopep->name(); } virtual const char* fullname() { return m_scopep->name(); } @@ -206,12 +206,12 @@ public: vluint32_t mask() const { return m_mask.u32; } vluint8_t mask_byte(int idx) { return m_mask.u8[idx & 3]; } vluint32_t entSize() const { return m_entSize; } - const vluint32_t index() { return m_index; } - virtual const vluint32_t type() { + vluint32_t index() { return m_index; } + virtual vluint32_t type() { if (varp()->vldir() != vpiNoDirection) return vpiPort; return (varp()->dims()>1) ? vpiMemory : vpiReg; /* but might be wire, logic */ } - virtual const vluint32_t size() const { return get_range().elements(); } + virtual vluint32_t size() const { return get_range().elements(); } virtual const VerilatedRange* rangep() const { return &get_range(); } virtual const char* name() { return m_varp->name(); } virtual const char* fullname() { @@ -239,8 +239,8 @@ public: } virtual ~VerilatedVpioMemoryWord() {} static inline VerilatedVpioMemoryWord* castp(vpiHandle h) { return dynamic_cast((VerilatedVpio*)h); } - virtual const vluint32_t type() { return vpiMemoryWord; } - virtual const vluint32_t size() const { return varp()->range().elements(); } + virtual vluint32_t type() { return vpiMemoryWord; } + virtual vluint32_t size() const { return varp()->range().elements(); } virtual const VerilatedRange* rangep() const { return &(varp()->range()); } virtual const char* fullname() { VL_STATIC_OR_THREAD string out; @@ -259,7 +259,7 @@ public: : m_scopep(scopep), m_started(false) { } virtual ~VerilatedVpioVarIter() {} static inline VerilatedVpioVarIter* castp(vpiHandle h) { return dynamic_cast((VerilatedVpio*)h); } - virtual const vluint32_t type() { return vpiIterator; } + virtual vluint32_t type() { return vpiIterator; } virtual vpiHandle dovpi_scan() { if (VL_LIKELY(m_scopep->varsp())) { VerilatedVarNameMap* varsp = m_scopep->varsp(); @@ -286,7 +286,7 @@ public: : m_handle(handle), m_varp(varp), m_iteration(varp->array().right()), m_direction(VL_LIKELY(varp->array().left()>varp->array().right())?1:-1), m_done(false) { } virtual ~VerilatedVpioMemoryWordIter() {} static inline VerilatedVpioMemoryWordIter* castp(vpiHandle h) { return dynamic_cast((VerilatedVpio*)h); } - virtual const vluint32_t type() { return vpiIterator; } + virtual vluint32_t type() { return vpiIterator; } void iterationInc() { if (!(m_done = (m_iteration == m_varp->array().left()))) m_iteration+=m_direction; } virtual vpiHandle dovpi_scan() { vpiHandle result; diff --git a/src/V3PreProc.cpp b/src/V3PreProc.cpp index 8db787f5d..b153a3789 100644 --- a/src/V3PreProc.cpp +++ b/src/V3PreProc.cpp @@ -1188,6 +1188,7 @@ int V3PreProcImp::getStateToken() { } else if (tok==VP_EOF) { error("`\" not terminated at EOF\n"); + break; } else if (tok==VP_BACKQUOTE) { m_strify += "\\\"";