mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 01:54:01 +02:00
Fix some clang-tidy warnings
This commit is contained in:
+1
-1
@@ -726,7 +726,7 @@ void AstNode::deleteNode() {
|
||||
this->m_op4p = reinterpret_cast<AstNode*>(0x1);
|
||||
if (
|
||||
#if !defined(VL_DEBUG) || defined(VL_LEAK_CHECKS)
|
||||
1
|
||||
true
|
||||
#else
|
||||
!v3Global.opt.debugLeak()
|
||||
#endif
|
||||
|
||||
+9
-10
@@ -1100,11 +1100,11 @@ public:
|
||||
explicit VNUser(void* p) { m_u.up = p; }
|
||||
~VNUser() {}
|
||||
// Casters
|
||||
WidthVP* c() { return ((WidthVP*)m_u.up); }
|
||||
VSymEnt* toSymEnt() { return ((VSymEnt*)m_u.up); }
|
||||
AstNode* toNodep() { return ((AstNode*)m_u.up); }
|
||||
V3GraphVertex* toGraphVertex() { return ((V3GraphVertex*)m_u.up); }
|
||||
inline int toInt() { return m_u.ui; }
|
||||
WidthVP* c() const { return reinterpret_cast<WidthVP*>(m_u.up); }
|
||||
VSymEnt* toSymEnt() const { return reinterpret_cast<VSymEnt*>(m_u.up); }
|
||||
AstNode* toNodep() const { return reinterpret_cast<AstNode*>(m_u.up); }
|
||||
V3GraphVertex* toGraphVertex() const { return reinterpret_cast<V3GraphVertex*>(m_u.up); }
|
||||
int toInt() const { return m_u.ui; }
|
||||
static inline VNUser fromInt(int i) { return VNUser(i); }
|
||||
};
|
||||
|
||||
@@ -1310,7 +1310,7 @@ public:
|
||||
class FullValue {}; // for creator type-overload selection
|
||||
explicit V3Hash(Illegal) { m_both = 0; }
|
||||
// Saving and restoring inside a userp
|
||||
explicit V3Hash(VNUser u) { m_both = u.toInt(); }
|
||||
explicit V3Hash(const VNUser& u) { m_both = u.toInt(); }
|
||||
V3Hash operator+=(const V3Hash& rh) {
|
||||
setBoth(depth() + rh.depth(), (hshval() * 31 + rh.hshval()));
|
||||
return *this;
|
||||
@@ -2474,9 +2474,8 @@ public:
|
||||
} // op1 = AstMember list
|
||||
void addMembersp(AstNode* nodep) { addNOp1p(nodep); }
|
||||
bool packed() const { return m_packed; }
|
||||
bool packedUnsup() const {
|
||||
return true;
|
||||
} // packed() but as don't support unpacked, presently all structs
|
||||
// packed() but as don't support unpacked, presently all structs
|
||||
static bool packedUnsup() { return true; }
|
||||
void isFourstate(bool flag) { m_isFourstate = flag; }
|
||||
virtual bool isFourstate() const { return m_isFourstate; }
|
||||
void clearCache() { m_members.clear(); }
|
||||
@@ -2485,7 +2484,7 @@ public:
|
||||
MemberNameMap::const_iterator it = m_members.find(name);
|
||||
return (it == m_members.end()) ? NULL : it->second;
|
||||
}
|
||||
int lsb() const { return 0; }
|
||||
static int lsb() { return 0; }
|
||||
int msb() const { return dtypep()->width() - 1; } // Packed classes look like arrays
|
||||
VNumRange declRange() const { return VNumRange(msb(), lsb(), false); }
|
||||
};
|
||||
|
||||
+2
-2
@@ -1908,11 +1908,11 @@ public:
|
||||
VDirection declDirection() const { return m_declDirection; }
|
||||
void varType(AstVarType type) { m_varType = type; }
|
||||
void varType2Out() {
|
||||
m_tristate = 0;
|
||||
m_tristate = false;
|
||||
m_direction = VDirection::OUTPUT;
|
||||
}
|
||||
void varType2In() {
|
||||
m_tristate = 0;
|
||||
m_tristate = false;
|
||||
m_direction = VDirection::INPUT;
|
||||
}
|
||||
AstBasicDTypeKwd declKwd() const { return m_declKwd; }
|
||||
|
||||
+2
-2
@@ -255,7 +255,7 @@ private:
|
||||
iterateChildren(nodep);
|
||||
m_logicVertexp = NULL;
|
||||
|
||||
if (0 && debug() >= 9) {
|
||||
if (false && debug() >= 9) {
|
||||
UINFO(9, "Trace Logic:\n");
|
||||
nodep->dumpTree(cout, "-log1: ");
|
||||
}
|
||||
@@ -295,7 +295,7 @@ private:
|
||||
static bool told_file = false;
|
||||
nodep->v3warnCode(code, msg);
|
||||
if (!told_file) {
|
||||
told_file = 1;
|
||||
told_file = true;
|
||||
std::cerr << V3Error::msgPrefix() << " See details in " << m_ofFilename << endl;
|
||||
}
|
||||
*m_ofp << "%Warning-" << code.ascii() << ": " << nodep->fileline() << " " << msg << endl;
|
||||
|
||||
+2
-2
@@ -345,7 +345,7 @@ private:
|
||||
// Grab statement bodies
|
||||
AstNRelinker relink1Handle;
|
||||
AstNRelinker relink2Handle;
|
||||
for (AstNode *nextp, *walkp = node1p; 1; walkp = nextp) {
|
||||
for (AstNode *nextp, *walkp = node1p; true; walkp = nextp) {
|
||||
nextp = walkp->nextp();
|
||||
if (walkp == node1p) {
|
||||
walkp->unlinkFrBack(&relink1Handle);
|
||||
@@ -355,7 +355,7 @@ private:
|
||||
}
|
||||
if (walkp == last1p) break;
|
||||
}
|
||||
for (AstNode *nextp, *walkp = node2p; 1; walkp = nextp) {
|
||||
for (AstNode *nextp, *walkp = node2p; true; walkp = nextp) {
|
||||
nextp = walkp->nextp();
|
||||
if (walkp == node2p) {
|
||||
walkp->unlinkFrBack(&relink2Handle);
|
||||
|
||||
+1
-1
@@ -335,7 +335,7 @@ public:
|
||||
// UINFO(9, " Hit " << *m_lastIt << endl);
|
||||
filelinep->warnOn(m_lastIgnore.it->m_code, m_lastIgnore.it->m_on);
|
||||
}
|
||||
if (0 && debug() >= 9) {
|
||||
if (false && debug() >= 9) {
|
||||
for (IgnLines::const_iterator it = m_lastIgnore.it; it != m_ignLines.end(); ++it) {
|
||||
UINFO(9, " NXT " << *it << endl);
|
||||
}
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ public:
|
||||
static void applyModule(AstNodeModule* modulep);
|
||||
static void applyFTask(AstNodeModule* modulep, AstNodeFTask* ftaskp);
|
||||
static void applyVarAttr(AstNodeModule* modulep, AstNodeFTask* ftaskp, AstVar* varp);
|
||||
static bool waive(FileLine* filelinep, V3ErrorCode code, const string& match);
|
||||
static bool waive(FileLine* filelinep, V3ErrorCode code, const string& message);
|
||||
};
|
||||
|
||||
#endif // Guard
|
||||
|
||||
+1
-1
@@ -127,7 +127,7 @@ class EmitCSyms : EmitCBaseVisitor {
|
||||
&& !(VN_IS(nodep, CFunc)
|
||||
&& (VN_CAST(nodep, CFunc)->isConstructor()
|
||||
|| VN_CAST(nodep, CFunc)->isDestructor()))) {
|
||||
string rsvd = m_words.isKeyword(nodep->name());
|
||||
string rsvd = V3LanguageWords::isKeyword(nodep->name());
|
||||
if (rsvd != "") {
|
||||
// Generally V3Name should find all of these and throw SYMRSVDWORD.
|
||||
// We'll still check here because the compiler errors
|
||||
|
||||
+4
-2
@@ -58,7 +58,8 @@ class EmitXmlFileVisitor : public AstNVisitor {
|
||||
if (!nodep->user1()) { nodep->user1(++m_id); }
|
||||
puts("\"" + cvtToStr(nodep->user1()) + "\"");
|
||||
}
|
||||
void outputTag(AstNode* nodep, string tag) {
|
||||
void outputTag(AstNode* nodep, const string& tagin) {
|
||||
string tag = tagin;
|
||||
if (tag == "") tag = VString::downcase(nodep->typeName());
|
||||
puts("<" + tag + " " + nodep->fileline()->xml());
|
||||
puts(" " + nodep->fileline()->xmlDetailedLocation());
|
||||
@@ -86,7 +87,8 @@ class EmitXmlFileVisitor : public AstNVisitor {
|
||||
}
|
||||
}
|
||||
}
|
||||
void outputChildrenEnd(AstNode* nodep, string tag) {
|
||||
void outputChildrenEnd(AstNode* nodep, const string& tagin) {
|
||||
string tag = tagin;
|
||||
if (tag == "") tag = VString::downcase(nodep->typeName());
|
||||
if (nodep->op1p() || nodep->op2p() || nodep->op3p() || nodep->op4p()) {
|
||||
puts(">\n");
|
||||
|
||||
+1
-1
@@ -644,7 +644,7 @@ V3OutFormatter::V3OutFormatter(const string& filename, V3OutFormatter::Language
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
const string V3OutFormatter::indentSpaces(int num) {
|
||||
string V3OutFormatter::indentSpaces(int num) {
|
||||
// Indent the specified number of spaces. Use spaces.
|
||||
static char str[MAXSPACE + 20];
|
||||
char* cp = str;
|
||||
|
||||
+1
-1
@@ -165,7 +165,7 @@ public:
|
||||
if (!m_parenVec.empty()) m_parenVec.pop();
|
||||
}
|
||||
// STATIC METHODS
|
||||
static const string indentSpaces(int num);
|
||||
static string indentSpaces(int num);
|
||||
// Add escaped characters to strings
|
||||
static string quoteNameControls(const string& namein, Language lang = LA_C);
|
||||
|
||||
|
||||
+6
-6
@@ -36,7 +36,7 @@
|
||||
//######################################################################
|
||||
// FileLineSingleton class functions
|
||||
|
||||
const string FileLineSingleton::filenameLetters(int fileno) {
|
||||
string FileLineSingleton::filenameLetters(int fileno) {
|
||||
const int size = 1 + (64 / 4); // Each letter retires more than 4 bits of a > 64 bit number
|
||||
char out[size];
|
||||
char* op = out + size - 1;
|
||||
@@ -165,7 +165,7 @@ void FileLine::newContent() {
|
||||
m_contentLineno = 1;
|
||||
}
|
||||
|
||||
const string FileLine::xmlDetailedLocation() const {
|
||||
string FileLine::xmlDetailedLocation() const {
|
||||
return "loc=\"" + cvtToStr(filenameLetters()) + "," + cvtToStr(firstLineno()) + ","
|
||||
+ cvtToStr(firstColumn()) + "," + cvtToStr(lastLineno()) + "," + cvtToStr(lastColumn())
|
||||
+ "\"";
|
||||
@@ -259,27 +259,27 @@ FileLine* FileLine::copyOrSameFileLine() {
|
||||
return newp;
|
||||
}
|
||||
|
||||
const string FileLine::filebasename() const {
|
||||
string FileLine::filebasename() const {
|
||||
string name = filename();
|
||||
string::size_type pos;
|
||||
if ((pos = name.rfind('/')) != string::npos) name.erase(0, pos + 1);
|
||||
return name;
|
||||
}
|
||||
|
||||
const string FileLine::filebasenameNoExt() const {
|
||||
string FileLine::filebasenameNoExt() const {
|
||||
string name = filebasename();
|
||||
string::size_type pos;
|
||||
if ((pos = name.find('.')) != string::npos) name = name.substr(0, pos);
|
||||
return name;
|
||||
}
|
||||
|
||||
const string FileLine::firstColumnLetters() const {
|
||||
string FileLine::firstColumnLetters() const {
|
||||
char a = ((firstColumn() / 26) % 26) + 'a';
|
||||
char b = (firstColumn() % 26) + 'a';
|
||||
return string(1, a) + string(1, b);
|
||||
}
|
||||
|
||||
const string FileLine::profileFuncname() const {
|
||||
string FileLine::profileFuncname() const {
|
||||
// Return string that is OK as a function name - for profiling
|
||||
string name = filebasenameNoExt();
|
||||
string::size_type pos;
|
||||
|
||||
+13
-15
@@ -14,8 +14,8 @@
|
||||
//
|
||||
//*************************************************************************
|
||||
|
||||
#ifndef _V3FileLine_H_
|
||||
#define _V3FileLine_H_ 1
|
||||
#ifndef _V3FILELINE_H_
|
||||
#define _V3FILELINE_H_ 1
|
||||
|
||||
#include "config_build.h"
|
||||
#include "verilatedos.h"
|
||||
@@ -51,8 +51,8 @@ class FileLineSingleton {
|
||||
protected:
|
||||
friend class FileLine;
|
||||
int nameToNumber(const string& filename);
|
||||
const string numberToName(int filenameno) const { return m_names[filenameno]; }
|
||||
const V3LangCode numberToLang(int filenameno) const { return m_languages[filenameno]; }
|
||||
string numberToName(int filenameno) const { return m_names[filenameno]; }
|
||||
V3LangCode numberToLang(int filenameno) const { return m_languages[filenameno]; }
|
||||
void numberToLang(int filenameno, const V3LangCode& l) { m_languages[filenameno] = l; }
|
||||
void clear() {
|
||||
m_namemap.clear();
|
||||
@@ -60,7 +60,7 @@ protected:
|
||||
m_languages.clear();
|
||||
}
|
||||
void fileNameNumMapDumpXml(std::ostream& os);
|
||||
static const string filenameLetters(int fileno);
|
||||
static string filenameLetters(int fileno);
|
||||
};
|
||||
|
||||
//! All source lines from a file/stream, to enable errors to show sources
|
||||
@@ -193,19 +193,17 @@ public:
|
||||
string ascii() const;
|
||||
string asciiLineCol() const;
|
||||
int filenameno() const { return m_filenameno; }
|
||||
const string filename() const { return singleton().numberToName(filenameno()); }
|
||||
string filename() const { return singleton().numberToName(filenameno()); }
|
||||
bool filenameIsGlobal() const {
|
||||
return (filename() == commandLineFilename() || filename() == builtInFilename());
|
||||
}
|
||||
const string filenameLetters() const { return singleton().filenameLetters(filenameno()); }
|
||||
const string filebasename() const;
|
||||
const string filebasenameNoExt() const;
|
||||
const string firstColumnLetters() const;
|
||||
const string profileFuncname() const;
|
||||
const string xml() const {
|
||||
return "fl=\"" + filenameLetters() + cvtToStr(lastLineno()) + "\"";
|
||||
}
|
||||
const string xmlDetailedLocation() const;
|
||||
string filenameLetters() const { return FileLineSingleton::filenameLetters(filenameno()); }
|
||||
string filebasename() const;
|
||||
string filebasenameNoExt() const;
|
||||
string firstColumnLetters() const;
|
||||
string profileFuncname() const;
|
||||
string xml() const { return "fl=\"" + filenameLetters() + cvtToStr(lastLineno()) + "\""; }
|
||||
string xmlDetailedLocation() const;
|
||||
string lineDirectiveStrg(int enterExit) const;
|
||||
|
||||
// Turn on/off warning messages on this line.
|
||||
|
||||
@@ -88,7 +88,6 @@ public:
|
||||
// Options
|
||||
V3Options opt; // All options; let user see them directly
|
||||
|
||||
public:
|
||||
// CONSTRUCTORS
|
||||
V3Global()
|
||||
: m_rootp(NULL) // created by makeInitNetlist() so static constructors run first
|
||||
|
||||
+3
-3
@@ -79,9 +79,9 @@ public:
|
||||
|
||||
struct GraphAcycEdgeCmp {
|
||||
inline bool operator()(const V3GraphEdge* lhsp, const V3GraphEdge* rhsp) const {
|
||||
if (lhsp->weight() > rhsp->weight()) return 1; // LHS goes first
|
||||
if (lhsp->weight() < rhsp->weight()) return 0; // RHS goes first
|
||||
return 0;
|
||||
if (lhsp->weight() > rhsp->weight()) return true; // LHS goes first
|
||||
if (lhsp->weight() < rhsp->weight()) return false; // RHS goes first
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+1
-1
@@ -193,7 +193,7 @@ private:
|
||||
return NULL; // No match
|
||||
}
|
||||
|
||||
void findNfasWithInput(DfaVertex* dfaStatep, DfaInput input, DfaStates& nfasWithInput) {
|
||||
void findNfasWithInput(DfaVertex* dfaStatep, const DfaInput& input, DfaStates& nfasWithInput) {
|
||||
// Return all NFA states, with the given input transition from
|
||||
// the nfa states a given dfa state was constructed from.
|
||||
nextStep();
|
||||
|
||||
+1
-1
@@ -158,7 +158,7 @@ void V3Hashed::dumpFile(const string& filename, bool tree) {
|
||||
|
||||
V3Hash lasthash;
|
||||
int num_in_bucket = 0;
|
||||
for (HashMmap::iterator it = begin(); 1; ++it) {
|
||||
for (HashMmap::iterator it = begin(); true; ++it) {
|
||||
if (it == end() || lasthash != it->first) {
|
||||
if (it != end()) lasthash = it->first;
|
||||
if (num_in_bucket) {
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ private:
|
||||
nodep->editCountInc();
|
||||
} else if (VN_IS(nodep, CFunc) && VN_CAST(nodep, CFunc)->isConstructor()) {
|
||||
} else {
|
||||
string rsvd = m_words.isKeyword(nodep->name());
|
||||
string rsvd = V3LanguageWords::isKeyword(nodep->name());
|
||||
if (rsvd != "") {
|
||||
nodep->v3warn(SYMRSVDWORD,
|
||||
"Symbol matches " + rsvd + ": " << nodep->prettyNameQ());
|
||||
|
||||
+6
-6
@@ -792,7 +792,7 @@ string V3Number::toDecimalU() const {
|
||||
if (bcd.bitsValue(lsb, 4)) break;
|
||||
}
|
||||
for (; lsb >= 0; lsb -= 4) {
|
||||
output += ('0' + bcd.bitsValue(lsb, 4)); // 0..9
|
||||
output += static_cast<char>('0' + bcd.bitsValue(lsb, 4)); // 0..9
|
||||
}
|
||||
return output;
|
||||
}
|
||||
@@ -946,12 +946,12 @@ bool V3Number::isAnyXZ() const {
|
||||
bool V3Number::isLtXZ(const V3Number& rhs) const {
|
||||
// Include X/Z in comparisons for sort ordering
|
||||
for (int bit = 0; bit < std::max(this->width(), rhs.width()); bit++) {
|
||||
if (this->bitIs1(bit) && rhs.bitIs0(bit)) { return 1; }
|
||||
if (rhs.bitIs1(bit) && this->bitIs0(bit)) { return 0; }
|
||||
if (this->bitIsXZ(bit)) { return 1; }
|
||||
if (rhs.bitIsXZ(bit)) { return 0; }
|
||||
if (this->bitIs1(bit) && rhs.bitIs0(bit)) { return true; }
|
||||
if (rhs.bitIs1(bit) && this->bitIs0(bit)) { return false; }
|
||||
if (this->bitIsXZ(bit)) { return true; }
|
||||
if (rhs.bitIsXZ(bit)) { return false; }
|
||||
}
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
int V3Number::widthMin() const {
|
||||
|
||||
+38
-22
@@ -97,27 +97,43 @@ public:
|
||||
VTimescale(const string& value, bool& badr);
|
||||
VTimescale(double value, bool& badr) {
|
||||
badr = false;
|
||||
// clang-format off
|
||||
if (value == 10e2) m_e = TS_100S;
|
||||
else if (value == 1e1) m_e = TS_10S;
|
||||
else if (value == 1e0) m_e = TS_1S;
|
||||
else if (value == 1e-1) m_e = TS_100MS;
|
||||
else if (value == 1e-2) m_e = TS_10MS;
|
||||
else if (value == 1e-3) m_e = TS_1MS;
|
||||
else if (value == 1e-4) m_e = TS_100US;
|
||||
else if (value == 1e-5) m_e = TS_10US;
|
||||
else if (value == 1e-6) m_e = TS_1US;
|
||||
else if (value == 1e-7) m_e = TS_100NS;
|
||||
else if (value == 1e-8) m_e = TS_10NS;
|
||||
else if (value == 1e-9) m_e = TS_1NS;
|
||||
else if (value == 1e-10) m_e = TS_100PS;
|
||||
else if (value == 1e-11) m_e = TS_10PS;
|
||||
else if (value == 1e-12) m_e = TS_1PS;
|
||||
else if (value == 1e-13) m_e = TS_100FS;
|
||||
else if (value == 1e-14) m_e = TS_10FS;
|
||||
else if (value == 1e-15) m_e = TS_1FS;
|
||||
// clang-format on
|
||||
else {
|
||||
if (value == 10e2) {
|
||||
m_e = TS_100S;
|
||||
} else if (value == 1e1) {
|
||||
m_e = TS_10S;
|
||||
} else if (value == 1e0) {
|
||||
m_e = TS_1S;
|
||||
} else if (value == 1e-1) {
|
||||
m_e = TS_100MS;
|
||||
} else if (value == 1e-2) {
|
||||
m_e = TS_10MS;
|
||||
} else if (value == 1e-3) {
|
||||
m_e = TS_1MS;
|
||||
} else if (value == 1e-4) {
|
||||
m_e = TS_100US;
|
||||
} else if (value == 1e-5) {
|
||||
m_e = TS_10US;
|
||||
} else if (value == 1e-6) {
|
||||
m_e = TS_1US;
|
||||
} else if (value == 1e-7) {
|
||||
m_e = TS_100NS;
|
||||
} else if (value == 1e-8) {
|
||||
m_e = TS_10NS;
|
||||
} else if (value == 1e-9) {
|
||||
m_e = TS_1NS;
|
||||
} else if (value == 1e-10) {
|
||||
m_e = TS_100PS;
|
||||
} else if (value == 1e-11) {
|
||||
m_e = TS_10PS;
|
||||
} else if (value == 1e-12) {
|
||||
m_e = TS_1PS;
|
||||
} else if (value == 1e-13) {
|
||||
m_e = TS_100FS;
|
||||
} else if (value == 1e-14) {
|
||||
m_e = TS_10FS;
|
||||
} else if (value == 1e-15) {
|
||||
m_e = TS_1FS;
|
||||
} else {
|
||||
m_e = NONE;
|
||||
badr = true;
|
||||
}
|
||||
@@ -132,7 +148,7 @@ public:
|
||||
"10ns", "1ns", "100ps", "10ps", "1ps", "100fs", "10fs", "1fs", "NONE"};
|
||||
return names[m_e];
|
||||
}
|
||||
int powerOfTen() { return 2 - static_cast<int>(m_e); }
|
||||
int powerOfTen() const { return 2 - static_cast<int>(m_e); }
|
||||
double multiplier() const {
|
||||
static const double values[]
|
||||
= {100, 10, 1, 1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6, 1e-7,
|
||||
|
||||
+2
-2
@@ -1342,7 +1342,7 @@ void OrderVisitor::processInputs() {
|
||||
void OrderVisitor::processInputsInIterate(OrderEitherVertex* vertexp, VertexVec& todoVec) {
|
||||
// Propagate PrimaryIn through simple assignments
|
||||
if (vertexp->user()) return; // Already processed
|
||||
if (0 && debug() >= 9) {
|
||||
if (false && debug() >= 9) {
|
||||
UINFO(9, " InIIter " << vertexp << endl);
|
||||
if (OrderLogicVertex* vvertexp = dynamic_cast<OrderLogicVertex*>(vertexp)) {
|
||||
vvertexp->nodep()->dumpTree(cout, "- TT: ");
|
||||
@@ -2011,7 +2011,7 @@ void OrderVisitor::process() {
|
||||
|
||||
// Dump data
|
||||
m_graph.dumpDotFilePrefixed("orderg_done");
|
||||
if (0 && debug()) {
|
||||
if (false && debug()) {
|
||||
string dfilename = v3Global.opt.makeDir() + "/" + v3Global.opt.prefix() + "_INT_order";
|
||||
const vl_unique_ptr<std::ofstream> logp(V3File::new_ofstream(dfilename));
|
||||
if (logp->fail()) v3fatal("Can't write " << dfilename);
|
||||
|
||||
+2
-2
@@ -164,8 +164,8 @@ void V3ParseImp::errorPreprocDirective(const char* textp) {
|
||||
// Find all `preprocessor spelling candidates
|
||||
// Can't make this static as might get more defines later when read cells
|
||||
VSpellCheck speller;
|
||||
V3LanguageWords words;
|
||||
for (V3LanguageWords::const_iterator it = words.begin(); it != words.end(); ++it) {
|
||||
for (V3LanguageWords::const_iterator it = V3LanguageWords::begin();
|
||||
it != V3LanguageWords::end(); ++it) {
|
||||
string ppDirective = it->first;
|
||||
if (ppDirective[0] == '`') speller.pushCandidate(ppDirective);
|
||||
}
|
||||
|
||||
+3
-3
@@ -228,10 +228,10 @@ public:
|
||||
void lexNew();
|
||||
void lexDestroy();
|
||||
static int stateVerilogRecent(); // Parser -> lexer communication
|
||||
int prevLexToken() { return m_prevLexToken; } // Parser -> lexer communication
|
||||
int prevLexToken() const { return m_prevLexToken; } // Parser -> lexer communication
|
||||
size_t flexPpInputToLex(char* buf, size_t max_size) { return ppInputToLex(buf, max_size); }
|
||||
const V3ParseBisonYYSType curBisonVal() const { return m_curBisonVal; }
|
||||
const V3ParseBisonYYSType prevBisonVal() const { return m_prevBisonVal; }
|
||||
V3ParseBisonYYSType curBisonVal() const { return m_curBisonVal; }
|
||||
V3ParseBisonYYSType prevBisonVal() const { return m_prevBisonVal; }
|
||||
|
||||
//==== Symbol tables
|
||||
V3ParseSym* symp() { return m_symp; }
|
||||
|
||||
+1
-1
@@ -129,7 +129,7 @@ public:
|
||||
UINFO(1, "ParseSym Current: " << symCurrentp()->nodep() << endl);
|
||||
}
|
||||
void dump(std::ostream& os, const string& indent = "") { m_syms.dump(os, indent); }
|
||||
AstNode* findEntUpward(const string& name) {
|
||||
AstNode* findEntUpward(const string& name) const {
|
||||
// Lookup the given string as an identifier, return type of the id, scanning upward
|
||||
VSymEnt* foundp = symCurrentp()->findIdFallback(name);
|
||||
if (foundp) {
|
||||
|
||||
+2
-2
@@ -18,8 +18,8 @@
|
||||
// It is not intended for user applications.
|
||||
//*************************************************************************
|
||||
|
||||
#ifndef _VPREPROCLEX_H_ // Guard
|
||||
#define _VPREPROCLEX_H_ 1
|
||||
#ifndef _VPRELEX_H_ // Guard
|
||||
#define _VPRELEX_H_ 1
|
||||
|
||||
#include "V3Error.h"
|
||||
#include "V3FileLine.h"
|
||||
|
||||
+4
-4
@@ -286,9 +286,9 @@ public:
|
||||
m_finFilelinep->lineno(1);
|
||||
// Create lexer
|
||||
m_lexp = new V3PreLex(this, filelinep);
|
||||
m_lexp->m_keepComments = m_preprocp->keepComments();
|
||||
m_lexp->m_keepWhitespace = m_preprocp->keepWhitespace();
|
||||
m_lexp->m_pedantic = m_preprocp->pedantic();
|
||||
m_lexp->m_keepComments = keepComments();
|
||||
m_lexp->m_keepWhitespace = keepWhitespace();
|
||||
m_lexp->m_pedantic = pedantic();
|
||||
m_lexp->debug(debug() >= 5 ? debug() : 0); // See also V3PreProc::debug() method
|
||||
}
|
||||
~V3PreProcImp() {
|
||||
@@ -1527,7 +1527,7 @@ int V3PreProcImp::getFinalToken(string& buf) {
|
||||
}
|
||||
int tok = m_finToken;
|
||||
buf = m_finBuf;
|
||||
if (0 && debug() >= 5) {
|
||||
if (false && debug() >= 5) {
|
||||
string bufcln = V3PreLex::cleanDbgStrg(buf);
|
||||
string flcol = m_lexp->m_tokFilelinep->asciiLineCol();
|
||||
fprintf(stderr, "%s: FIN: %-10s: %s\n", flcol.c_str(), tokenName(tok),
|
||||
|
||||
+1
-1
@@ -350,7 +350,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
AstNode* varOrScope(AstVarRef* nodep) {
|
||||
AstNode* varOrScope(AstVarRef* nodep) const {
|
||||
AstNode* vscp;
|
||||
if (m_scoped) {
|
||||
vscp = nodep->varScopep();
|
||||
|
||||
+7
-7
@@ -36,29 +36,29 @@ public:
|
||||
~VDouble0() {}
|
||||
|
||||
// Implicit conversion operators:
|
||||
inline explicit VDouble0(const vluint64_t v)
|
||||
explicit VDouble0(const vluint64_t v)
|
||||
: m_d(v) {}
|
||||
inline operator double() const { return m_d; }
|
||||
operator double() const { return m_d; }
|
||||
|
||||
// Explicit operators:
|
||||
inline VDouble0& operator++() { // prefix
|
||||
VDouble0& operator++() { // prefix
|
||||
++m_d;
|
||||
return *this;
|
||||
}
|
||||
inline VDouble0 operator++(int) { // postfix
|
||||
VDouble0 operator++(int) { // postfix
|
||||
VDouble0 old = *this;
|
||||
m_d++;
|
||||
return old;
|
||||
}
|
||||
inline VDouble0& operator=(const double v) {
|
||||
VDouble0& operator=(const double v) {
|
||||
m_d = v;
|
||||
return *this;
|
||||
}
|
||||
inline VDouble0& operator+=(const double v) {
|
||||
VDouble0& operator+=(const double v) {
|
||||
m_d += v;
|
||||
return *this;
|
||||
}
|
||||
inline VDouble0& operator-=(const double v) {
|
||||
VDouble0& operator-=(const double v) {
|
||||
m_d -= v;
|
||||
return *this;
|
||||
}
|
||||
|
||||
+3
-4
@@ -14,8 +14,8 @@
|
||||
//
|
||||
//*************************************************************************
|
||||
|
||||
#ifndef _V3LINKSYMTABLE_H_
|
||||
#define _V3LINKSYMTABLE_H_ 1
|
||||
#ifndef _V3SYMTABLE_H_
|
||||
#define _V3SYMTABLE_H_ 1
|
||||
|
||||
#include "config_build.h"
|
||||
#include "verilatedos.h"
|
||||
@@ -189,7 +189,7 @@ private:
|
||||
reinsert(name, symp);
|
||||
}
|
||||
}
|
||||
void exportOneSymbol(VSymGraph* graphp, const string& name, const VSymEnt* srcp) {
|
||||
void exportOneSymbol(VSymGraph* graphp, const string& name, const VSymEnt* srcp) const {
|
||||
if (srcp->exported()) {
|
||||
if (VSymEnt* symp = findIdFlat(name)) { // Should already exist in current table
|
||||
if (!symp->exported()) symp->exported(true);
|
||||
@@ -283,7 +283,6 @@ public:
|
||||
for (SymStack::iterator it = m_symsp.begin(); it != m_symsp.end(); ++it) delete (*it);
|
||||
}
|
||||
|
||||
public:
|
||||
// METHODS
|
||||
VSymEnt* rootp() const { return m_symRootp; }
|
||||
// Debug
|
||||
|
||||
+2
-1
@@ -375,7 +375,8 @@ private:
|
||||
|
||||
// Sort the traces by activity sets
|
||||
TraceVec traces;
|
||||
uint32_t unused1, unused2;
|
||||
uint32_t unused1;
|
||||
uint32_t unused2;
|
||||
sortTraces(traces, unused1, unused2);
|
||||
|
||||
// For each activity set with only a small number of signals, make those
|
||||
|
||||
@@ -32,7 +32,6 @@ private:
|
||||
vluint64_t m_dataSize; ///< Current entries in m_datap
|
||||
vluint64_t m_bucketsCovered; ///< Num buckets with sufficient coverage
|
||||
|
||||
private:
|
||||
static inline vluint64_t covBit(vluint64_t point) { return 1ULL << (point & 63); }
|
||||
inline vluint64_t allocSize() const { return sizeof(vluint64_t) * m_dataSize / 64; }
|
||||
void allocate(vluint64_t point) {
|
||||
|
||||
@@ -108,7 +108,6 @@ public:
|
||||
ByName::iterator begin() { return m_nameMap.begin(); }
|
||||
ByName::iterator end() { return m_nameMap.end(); }
|
||||
|
||||
public:
|
||||
// CONSTRUCTORS
|
||||
VlcPoints()
|
||||
: m_numPoints(0) {}
|
||||
|
||||
@@ -118,7 +118,6 @@ public:
|
||||
NameMap::iterator begin() { return m_sources.begin(); }
|
||||
NameMap::iterator end() { return m_sources.end(); }
|
||||
|
||||
public:
|
||||
// CONSTRUCTORS
|
||||
VlcSources() {}
|
||||
~VlcSources() {}
|
||||
|
||||
@@ -103,7 +103,6 @@ public:
|
||||
ByName::iterator begin() { return m_tests.begin(); }
|
||||
ByName::iterator end() { return m_tests.end(); }
|
||||
|
||||
public:
|
||||
// CONSTRUCTORS
|
||||
VlcTests() {}
|
||||
~VlcTests() {
|
||||
|
||||
Reference in New Issue
Block a user