base class destructors public virtual or protected non-virtual

This commit is contained in:
James Cherry 2019-06-30 22:30:53 -07:00
parent d76ee0ca62
commit f34fc4162d
5 changed files with 23 additions and 17 deletions

View File

@ -114,7 +114,7 @@ class LibertyLibrary : public ConcreteLibrary
public:
LibertyLibrary(const char *name,
const char *filename);
~LibertyLibrary();
virtual ~LibertyLibrary();
LibertyCell *findLibertyCell(const char *name) const;
void findLibertyCellsMatching(PatternMatch *pattern,
LibertyCellSeq *cells);
@ -383,7 +383,7 @@ public:
LibertyCell(LibertyLibrary *library,
const char *name,
const char *filename);
~LibertyCell();
virtual ~LibertyCell();
LibertyLibrary *libertyLibrary() const { return liberty_library_; }
LibertyLibrary *libertyLibrary() { return liberty_library_; }
LibertyPort *findLibertyPort(const char *name) const;
@ -589,7 +589,7 @@ class LibertyCellPortBitIterator : public Iterator<LibertyPort*>
{
public:
explicit LibertyCellPortBitIterator(const LibertyCell *cell);
~LibertyCellPortBitIterator();
virtual ~LibertyCellPortBitIterator();
bool hasNext();
LibertyPort *next();
@ -750,7 +750,7 @@ protected:
int to_index,
bool is_bundle,
ConcretePortSeq *members);
~LibertyPort();
virtual ~LibertyPort();
void setDirection(PortDirection *dir);
void setMinPort(LibertyPort *min);
void addScaledPort(OperatingConditions *op_cond,
@ -800,7 +800,7 @@ class LibertyPortMemberIterator : public Iterator<LibertyPort*>
{
public:
explicit LibertyPortMemberIterator(const LibertyPort *port);
~LibertyPortMemberIterator();
virtual ~LibertyPortMemberIterator();
virtual bool hasNext();
virtual LibertyPort *next();
@ -817,6 +817,7 @@ public:
Pvt(float process,
float voltage,
float temperature);
virtual ~Pvt() {}
float process() const { return process_; }
void setProcess(float process);
float voltage() const { return voltage_; }
@ -842,7 +843,7 @@ public:
float voltage,
float temperature,
WireloadTree wire_load_tree);
~OperatingConditions();
virtual ~OperatingConditions();
const char *name() const { return name_; }
WireloadTree wireloadTree() const { return wire_load_tree_; }
void setWireloadTree(WireloadTree tree);

View File

@ -50,7 +50,7 @@ public:
explicit ConcreteLibrary(const char *name,
const char *filename,
bool is_liberty);
~ConcreteLibrary();
virtual ~ConcreteLibrary();
const char *name() const { return name_; }
void setName(const char *name);
bool isLiberty() const { return is_liberty_; }
@ -90,7 +90,7 @@ class ConcreteCell
{
public:
// Use ConcreteLibrary::deleteCell.
~ConcreteCell();
virtual ~ConcreteCell();
ConcreteLibrary *library() const { return library_; }
const char *name() const { return name_; }
const char *filename() const { return filename_; }
@ -164,7 +164,7 @@ private:
class ConcretePort
{
public:
~ConcretePort();
virtual ~ConcretePort();
const char *name() const { return name_; }
const char *busName() const;
Cell *cell() const;

View File

@ -321,12 +321,11 @@ public:
VertexIndex vertexIndex() const { return vertex_index_; }
void setVertexIndex(VertexIndex index);
private:
DISALLOW_COPY_AND_ASSIGN(ConcretePin);
protected:
~ConcretePin() {}
ConcretePin(ConcreteInstance *instance,
ConcretePort *port,
ConcreteNet *net);
~ConcretePin() {}
ConcreteInstance *instance_;
ConcretePort *port_;
@ -337,6 +336,9 @@ private:
ConcretePin *net_prev_;
VertexIndex vertex_index_;
private:
DISALLOW_COPY_AND_ASSIGN(ConcretePin);
friend class ConcreteNetwork;
friend class ConcreteNet;
friend class ConcreteNetPinIterator;
@ -349,17 +351,19 @@ public:
ConcreteNet *net() const { return net_; }
ConcretePin *pin() const { return pin_; }
private:
DISALLOW_COPY_AND_ASSIGN(ConcreteTerm);
protected:
~ConcreteTerm() {}
ConcreteTerm(ConcretePin *pin,
ConcreteNet *net);
~ConcreteTerm() {}
ConcretePin *pin_;
ConcreteNet *net_;
// Linked list of net terms.
ConcreteTerm *net_next_;
private:
DISALLOW_COPY_AND_ASSIGN(ConcreteTerm);
friend class ConcreteNetwork;
friend class ConcreteNet;
friend class ConcreteNetTermIterator;
@ -382,8 +386,6 @@ protected:
ConcreteNet(const char *name,
ConcreteInstance *instance);
~ConcreteNet();
private:
const char *name_;
ConcreteInstance *instance_;
// Pointer to head of linked list of pins.

View File

@ -14,6 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
#include <functional>
#include "Machine.hh"
#include "StringUtil.hh"
#include "PatternMatch.hh"

View File

@ -1017,6 +1017,7 @@ void
ReportPath::reportSummaryHeader(string &result)
{
reportDescription("Startpoint", result);
result += ' ';
reportDescription("Endpoint", result);
result += ' ';
reportField("Slack", field_total_, result);
@ -1034,6 +1035,7 @@ ReportPath::reportSummaryLine(PathEnd *end,
const EarlyLate *early_late = end->pathEarlyLate(this);
auto startpoint = pathStartpoint(end, expanded);
reportDescription(startpoint.c_str(), result);
result += ' ';
auto endpoint = pathEndpoint(end);
reportDescription(endpoint.c_str(), result);
if (end->isUnconstrained())