Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2026-03-09 17:43:03 -07:00
parent f1b33edd98
commit 129d007f76
14 changed files with 208 additions and 209 deletions

View File

@ -119,7 +119,7 @@ class ArnoldiDelayCalc : public LumpedCapDelayCalc
{
public:
ArnoldiDelayCalc(StaState *sta);
virtual ~ArnoldiDelayCalc();
~ArnoldiDelayCalc() override;
ArcDelayCalc *copy() override;
const char *name() const override { return "arnoldi"; }
Parasitic *findParasitic(const Pin *drvr_pin,

View File

@ -77,7 +77,6 @@ class DmpError : public Exception
{
public:
DmpError(const char *what);
virtual ~DmpError() {}
virtual const char *what() const noexcept { return what_; }
private:

View File

@ -107,7 +107,7 @@ public:
int &bidirect_count,
int &load_count,
const Network *network);
virtual void operator()(const Pin *pin);
void operator()(const Pin *pin) override;
protected:
Pin *drvr_pin_;
@ -345,8 +345,8 @@ public:
MakeEdgesThruHierPin(Graph *graph);
private:
virtual void visit(const Pin *drvr,
const Pin *load);
void visit(const Pin *drvr,
const Pin *load) override;
Graph *graph_;
};
@ -1483,8 +1483,8 @@ class FindEdgesThruHierPinVisitor : public HierPinThruVisitor
public:
FindEdgesThruHierPinVisitor(EdgeSet &edges,
Graph *graph);
virtual void visit(const Pin *drvr,
const Pin *load);
void visit(const Pin *drvr,
const Pin *load) override;
protected:
EdgeSet &edges_;

View File

@ -164,17 +164,17 @@ public:
bool own_pts,
int priority,
const char *comment);
virtual ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts);
virtual bool isFalse() const { return true; }
virtual ExceptionPathType type() const { return ExceptionPathType::false_path; }
virtual const char *typeString() const;
virtual bool mergeable(ExceptionPath *exception) const;
virtual bool overrides(ExceptionPath *exception) const;
virtual int typePriority() const;
virtual bool tighterThan(ExceptionPath *exception) const;
ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts) override;
bool isFalse() const override { return true; }
ExceptionPathType type() const override { return ExceptionPathType::false_path; }
const char *typeString() const override;
bool mergeable(ExceptionPath *exception) const override;
bool overrides(ExceptionPath *exception) const override;
int typePriority() const override;
bool tighterThan(ExceptionPath *exception) const override;
};
// Loop paths are false paths used to disable paths around
@ -184,10 +184,10 @@ class LoopPath : public FalsePath
public:
LoopPath(ExceptionThruSeq *thrus,
bool own_pts);
virtual bool isLoop() const { return true; }
virtual ExceptionPathType type() const { return ExceptionPathType::loop; }
virtual const char *typeString() const;
virtual bool mergeable(ExceptionPath *exception) const;
bool isLoop() const override { return true; }
ExceptionPathType type() const override { return ExceptionPathType::loop; }
const char *typeString() const override;
bool mergeable(ExceptionPath *exception) const override;
};
// set_max_delay/set_min_delay
@ -203,21 +203,21 @@ public:
float delay,
bool own_pts,
const char *comment);
virtual ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts);
virtual bool isPathDelay() const { return true; }
virtual ExceptionPathType type() const { return ExceptionPathType::path_delay; }
virtual const char *asString(const Network *network) const;
virtual const char *typeString() const;
virtual bool mergeable(ExceptionPath *exception) const;
virtual bool overrides(ExceptionPath *exception) const;
virtual float delay() const { return delay_; }
virtual int typePriority() const;
virtual bool tighterThan(ExceptionPath *exception) const;
virtual bool ignoreClkLatency() const { return ignore_clk_latency_; }
virtual bool breakPath() const { return break_path_; }
ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts) override;
bool isPathDelay() const override { return true; }
ExceptionPathType type() const override { return ExceptionPathType::path_delay; }
const char *asString(const Network *network) const override;
const char *typeString() const override;
bool mergeable(ExceptionPath *exception) const override;
bool overrides(ExceptionPath *exception) const override;
float delay() const override { return delay_; }
int typePriority() const override;
bool tighterThan(ExceptionPath *exception) const override;
bool ignoreClkLatency() const override { return ignore_clk_latency_; }
bool breakPath() const override { return break_path_; }
protected:
bool ignore_clk_latency_;
@ -237,24 +237,24 @@ public:
int path_multiplier,
bool own_pts,
const char *comment);
virtual ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts);
virtual bool isMultiCycle() const { return true; }
virtual ExceptionPathType type() const { return ExceptionPathType::multi_cycle; }
virtual bool matches(const MinMax *min_max,
bool exactly) const;
virtual const char *asString(const Network *network) const;
virtual const char *typeString() const;
virtual bool mergeable(ExceptionPath *exception) const;
virtual bool overrides(ExceptionPath *exception) const;
virtual bool useEndClk() const { return use_end_clk_; }
virtual int pathMultiplier(const MinMax *min_max) const;
virtual int pathMultiplier() const { return path_multiplier_; }
virtual int priority(const MinMax *min_max) const;
virtual int typePriority() const;
virtual bool tighterThan(ExceptionPath *exception) const;
ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts) override;
bool isMultiCycle() const override { return true; }
ExceptionPathType type() const override { return ExceptionPathType::multi_cycle; }
bool matches(const MinMax *min_max,
bool exactly) const override;
const char *asString(const Network *network) const override;
const char *typeString() const override;
bool mergeable(ExceptionPath *exception) const override;
bool overrides(ExceptionPath *exception) const override;
bool useEndClk() const override { return use_end_clk_; }
int pathMultiplier(const MinMax *min_max) const; // overload, not override
int pathMultiplier() const override { return path_multiplier_; }
int priority(const MinMax *min_max) const override;
int typePriority() const override;
bool tighterThan(ExceptionPath *exception) const override;
using ExceptionPath::priority;
@ -271,22 +271,22 @@ public:
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts);
virtual ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts);
virtual bool isFilter() const { return true; }
virtual ExceptionPathType type() const { return ExceptionPathType::filter; }
virtual const char *typeString() const;
virtual bool mergeable(ExceptionPath *exception) const;
virtual bool overrides(ExceptionPath *exception) const;
virtual bool resetMatch(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
const MinMaxAll *min_max,
const Network *network);
virtual int typePriority() const;
virtual bool tighterThan(ExceptionPath *exception) const;
ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts) override;
bool isFilter() const override { return true; }
ExceptionPathType type() const override { return ExceptionPathType::filter; }
const char *typeString() const override;
bool mergeable(ExceptionPath *exception) const override;
bool overrides(ExceptionPath *exception) const override;
bool resetMatch(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
const MinMaxAll *min_max,
const Network *network) override;
int typePriority() const override;
bool tighterThan(ExceptionPath *exception) const override;
};
class GroupPath : public ExceptionPath
@ -299,20 +299,20 @@ public:
ExceptionTo *to,
bool own_pts,
const char *comment);
virtual ~GroupPath();
virtual ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts);
virtual bool isGroupPath() const { return true; }
virtual ExceptionPathType type() const { return ExceptionPathType::group_path; }
virtual const char *typeString() const;
virtual bool mergeable(ExceptionPath *exception) const;
virtual bool overrides(ExceptionPath *exception) const;
virtual int typePriority() const;
virtual bool tighterThan(ExceptionPath *exception) const;
virtual const char *name() const { return name_; }
virtual bool isDefault() const { return is_default_; }
~GroupPath() override;
ExceptionPath *clone(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
bool own_pts) override;
bool isGroupPath() const override { return true; }
ExceptionPathType type() const override { return ExceptionPathType::group_path; }
const char *typeString() const override;
bool mergeable(ExceptionPath *exception) const override;
bool overrides(ExceptionPath *exception) const override;
int typePriority() const override;
bool tighterThan(ExceptionPath *exception) const override;
const char *name() const override { return name_; }
bool isDefault() const override { return is_default_; }
protected:
const char *name_;
@ -385,39 +385,39 @@ public:
bool own_pts,
const Network *network);
~ExceptionFromTo();
virtual PinSet *pins() { return pins_; }
PinSet *pins() override { return pins_; }
bool hasPins() const;
ClockSet *clks() { return clks_; }
ClockSet *clks() override { return clks_; }
bool hasClocks() const;
InstanceSet *instances() { return insts_; }
InstanceSet *instances() override { return insts_; }
bool hasInstances() const;
virtual NetSet *nets() { return nullptr; }
virtual EdgePinsSet *edges() { return nullptr; }
NetSet *nets() override { return nullptr; }
EdgePinsSet *edges() override { return nullptr; }
bool hasObjects() const;
void deleteObjects(ExceptionFromTo *pt,
const Network *network);
virtual PinSet allPins(const Network *network);
PinSet allPins(const Network *network) override;
bool equal(ExceptionFromTo *from_to) const;
virtual int compare(ExceptionPt *pt,
const Network *network) const;
virtual void mergeInto(ExceptionPt *pt,
const Network *network);
virtual const char *asString(const Network *network) const;
virtual size_t objectCount() const;
int compare(ExceptionPt *pt,
const Network *network) const override;
void mergeInto(ExceptionPt *pt,
const Network *network) override;
const char *asString(const Network *network) const override;
size_t objectCount() const override;
void deleteClock(Clock *clk);
virtual void addPin(const Pin *pin,
const Network *network);
virtual void addClock(Clock *clk);
virtual void addInstance(const Instance *inst,
const Network *network);
virtual void addNet(const Net *,
const Network *) {}
virtual void addEdge(const EdgePins &,
const Network *) {}
virtual void connectPinAfter(PinSet *,
Network *) {}
virtual void deletePinBefore(const Pin *,
Network *);
void addPin(const Pin *pin,
const Network *network) override;
void addClock(Clock *clk) override;
void addInstance(const Instance *inst,
const Network *network) override;
void addNet(const Net *,
const Network *) override {}
void addEdge(const EdgePins &,
const Network *) override {}
void connectPinAfter(PinSet *,
Network *) override {}
void deletePinBefore(const Pin *,
Network *) override;
void deleteInstance(const Instance *inst,
const Network *network);
@ -443,14 +443,14 @@ public:
bool own_pts,
const Network *network);
ExceptionFrom *clone(const Network *network);
virtual bool isFrom() const { return true; }
bool isFrom() const override { return true; }
bool intersectsPts(ExceptionFrom *from,
const Network *network) const;
virtual int typePriority() const { return 0; }
int typePriority() const override { return 0; }
protected:
virtual const char *cmdKeyword() const;
virtual void findHash(const Network *network);
const char *cmdKeyword() const override;
void findHash(const Network *network) override;
};
class ExceptionTo : public ExceptionFromTo
@ -466,12 +466,12 @@ public:
bool own_pts,
const Network *network);
ExceptionTo *clone(const Network *network);
virtual bool isTo() const { return true; }
const char *asString(const Network *network) const;
bool isTo() const override { return true; }
const char *asString(const Network *network) const override;
const RiseFallBoth *endTransition() { return end_rf_; }
bool intersectsPts(ExceptionTo *to,
const Network *network) const;
virtual int typePriority() const { return 1; }
int typePriority() const override { return 1; }
bool matches(const Pin *pin,
const ClockEdge *clk_edge,
const RiseFall *end_rf,
@ -486,8 +486,8 @@ public:
const ClockEdge *clk_edge,
const RiseFall *end_rf,
const Network *network) const;
virtual int compare(ExceptionPt *pt,
const Network *network) const;
int compare(ExceptionPt *pt,
const Network *network) const override;
protected:
bool matches(const Pin *pin,
@ -495,7 +495,7 @@ protected:
const RiseFall *end_rf,
bool inst_matches_reg_clk_pin,
const Network *network) const;
virtual const char *cmdKeyword() const;
const char *cmdKeyword() const override;
// -rise|-fall endpoint transition.
const RiseFallBoth *end_rf_;
@ -512,48 +512,48 @@ public:
const Network *network);
~ExceptionThru();
ExceptionThru *clone(const Network *network);
virtual const char *asString(const Network *network) const;
virtual bool isThru() const { return true; }
PinSet *pins() { return pins_; }
EdgePinsSet *edges() { return edges_; }
NetSet *nets() { return nets_; }
InstanceSet *instances() { return insts_; }
virtual ClockSet *clks() { return nullptr; }
const char *asString(const Network *network) const override;
bool isThru() const override { return true; }
PinSet *pins() override { return pins_; }
EdgePinsSet *edges() override { return edges_; }
NetSet *nets() override { return nets_; }
InstanceSet *instances() override { return insts_; }
ClockSet *clks() override { return nullptr; }
bool hasObjects() const;
void deleteObjects(ExceptionThru *pt,
const Network *network);
virtual PinSet allPins(const Network *network);
PinSet allPins(const Network *network) override;
bool matches(const Pin *from_pin,
const Pin *to_pin,
const RiseFall *to_rf,
const Network *network);
bool equal(ExceptionThru *thru) const;
virtual int compare(ExceptionPt *pt,
const Network *network) const;
virtual void mergeInto(ExceptionPt *pt,
const Network *network);
int compare(ExceptionPt *pt,
const Network *network) const override;
void mergeInto(ExceptionPt *pt,
const Network *network) override;
bool intersectsPts(ExceptionThru *thru,
const Network *network) const;
virtual int typePriority() const { return 2; }
virtual size_t objectCount() const;
virtual void connectPinAfter(PinSet *drvrs,
Network *network);
virtual void deletePinBefore(const Pin *pin,
Network *network);
int typePriority() const override { return 2; }
size_t objectCount() const override;
void connectPinAfter(PinSet *drvrs,
Network *network) override;
void deletePinBefore(const Pin *pin,
Network *network) override;
void deleteInstance(const Instance *inst,
const Network *network);
protected:
void findHash(const Network *network);
virtual void addPin(const Pin *pin,
const Network *network);
virtual void addEdge(const EdgePins &edge,
const Network *network);
virtual void addNet(const Net *net,
const Network *network);
virtual void addInstance(const Instance *inst,
const Network *network);
virtual void addClock(Clock *) {}
void addPin(const Pin *pin,
const Network *network) override;
void addEdge(const EdgePins &edge,
const Network *network) override;
void addNet(const Net *net,
const Network *network) override;
void addInstance(const Instance *inst,
const Network *network) override;
void addClock(Clock *) override {}
void deletePin(const Pin *pin,
const Network *network);
void deleteEdge(const EdgePins &edge);

View File

@ -1365,7 +1365,7 @@ class ConnectedPinIterator1 : public ConnectedPinIterator
{
public:
ConnectedPinIterator1(PinSet *pins);
virtual ~ConnectedPinIterator1();
~ConnectedPinIterator1() override;
bool hasNext() override;
const Pin *next() override;
@ -1401,7 +1401,7 @@ class FindConnectedPins : public PinVisitor
{
public:
FindConnectedPins(PinSet *pins);
virtual void operator()(const Pin *pin);
void operator()(const Pin *pin) override;
protected:
PinSet *pins_;
@ -1572,7 +1572,7 @@ class FindDrvrPins : public PinVisitor
public:
FindDrvrPins(PinSet *pins,
const Network *network);
virtual void operator()(const Pin *pin);
void operator()(const Pin *pin) override;
protected:
PinSet *pins_;

View File

@ -1289,7 +1289,7 @@ public:
const Pin *load);
protected:
virtual void visit(HpinDrvrLoad *drvr_load);
void visit(HpinDrvrLoad *drvr_load) override;
void makeClkHpinDisables(const Pin *clk_src,
const Pin *drvr,
const Pin *load);
@ -3173,7 +3173,7 @@ public:
float &fanout,
bool &has_net_load,
const Sdc *sdc);
virtual void operator()(const Pin *pin);
void operator()(const Pin *pin) override;
protected:
const RiseFall *rf_;
@ -3560,8 +3560,8 @@ public:
Graph *graph);
protected:
virtual void visit(const Pin *drvr,
const Pin *load);
void visit(const Pin *drvr,
const Pin *load) override;
PinPairSet *pairs_;
Graph *graph_;
@ -3601,8 +3601,8 @@ public:
Graph *graph);
protected:
virtual void visit(const Pin *drvr,
const Pin *load);
void visit(const Pin *drvr,
const Pin *load) override;
PinPairSet *pairs_;
Graph *graph_;
@ -5151,9 +5151,9 @@ public:
ExpandException(ExceptionPath *exception,
ExceptionPathSet &expansions,
Network *network);
virtual void visit(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to);
void visit(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to) override;
private:
ExceptionPathSet &expansions_;

View File

@ -322,9 +322,9 @@ public:
const Mode *mode);
private:
virtual void visitReg(Instance *inst);
virtual void visitSequential(Instance *inst,
const Sequential *seq);
void visitReg(Instance *inst) override;
void visitSequential(Instance *inst,
const Sequential *seq) override;
InstanceSet regs_;
};
@ -383,9 +383,9 @@ public:
const Mode *mode);
protected:
virtual void visitReg(Instance *inst);
virtual void visitSequential(Instance *inst,
const Sequential *seq);
void visitReg(Instance *inst) override;
void visitSequential(Instance *inst,
const Sequential *seq) override;
virtual bool matchPin(Pin *pin);
void visitExpr(FuncExpr *expr,
Instance *inst,
@ -461,9 +461,9 @@ public:
FindRegDataPins(const StaState *sta);
private:
virtual bool matchPin(Pin *pin);
virtual FuncExpr *seqExpr1(const Sequential *seq);
virtual FuncExpr *seqExpr2(const Sequential *seq);
bool matchPin(Pin *pin) override;
FuncExpr *seqExpr1(const Sequential *seq) override;
FuncExpr *seqExpr2(const Sequential *seq) override;
};
FindRegDataPins::FindRegDataPins(const StaState *sta) :
@ -528,9 +528,9 @@ public:
FindRegClkPins(const StaState *sta);
private:
virtual bool matchPin(Pin *pin);
virtual FuncExpr *seqExpr1(const Sequential *seq);
virtual FuncExpr *seqExpr2(const Sequential *seq);
bool matchPin(Pin *pin) override;
FuncExpr *seqExpr1(const Sequential *seq) override;
FuncExpr *seqExpr2(const Sequential *seq) override;
};
FindRegClkPins::FindRegClkPins(const StaState *sta) :
@ -586,9 +586,9 @@ public:
FindRegAsyncPins(const StaState *sta);
private:
virtual bool matchPin(Pin *pin);
virtual FuncExpr *seqExpr1(const Sequential *seq) { return seq->clear(); }
virtual FuncExpr *seqExpr2(const Sequential *seq) { return seq->preset(); }
bool matchPin(Pin *pin) override;
FuncExpr *seqExpr1(const Sequential *seq) override { return seq->clear(); }
FuncExpr *seqExpr2(const Sequential *seq) override { return seq->preset(); }
};
FindRegAsyncPins::FindRegAsyncPins(const StaState *sta) :
@ -629,14 +629,14 @@ public:
FindRegOutputPins(const StaState *sta);
private:
virtual bool matchPin(Pin *pin);
virtual void visitSequential(Instance *inst,
const Sequential *seq);
bool matchPin(Pin *pin) override;
void visitSequential(Instance *inst,
const Sequential *seq) override;
void visitOutput(LibertyPort *port,
Instance *inst);
// Unused.
virtual FuncExpr *seqExpr1(const Sequential *seq);
virtual FuncExpr *seqExpr2(const Sequential *seq);
FuncExpr *seqExpr1(const Sequential *seq) override;
FuncExpr *seqExpr2(const Sequential *seq) override;
};
FindRegOutputPins::FindRegOutputPins(const StaState *sta) :

View File

@ -707,8 +707,8 @@ public:
BfsFwdIterator *insert_iter,
GenclkInfo *genclk_info,
const Mode *mode);
virtual VertexVisitor *copy() const;
virtual void visit(Vertex *vertex);
VertexVisitor *copy() const override;
void visit(Vertex *vertex) override;
protected:
GenclkSrcArrivalVisitor(Clock *gclk,

View File

@ -236,9 +236,9 @@ class MakeEndTimingArcs : public PathEndVisitor
public:
MakeEndTimingArcs(Sta *sta);
MakeEndTimingArcs(const MakeEndTimingArcs&) = default;
virtual ~MakeEndTimingArcs() {}
virtual PathEndVisitor *copy() const;
virtual void visit(PathEnd *path_end);
~MakeEndTimingArcs() override {}
PathEndVisitor *copy() const override;
void visit(PathEnd *path_end) override;
void setInputRf(const RiseFall *input_rf);
const ClockEdgeDelays &margins() const { return margins_; }

View File

@ -246,11 +246,11 @@ public:
bool unique_pins,
bool unique_edges,
PathEnum *path_enum);
virtual VertexVisitor *copy() const override;
VertexVisitor *copy() const override;
void visitFaninPathsThru(Path *before_div,
Vertex *prev_vertex,
TimingArc *prev_arc);
virtual bool visitFromToPath(const Pin *from_pin,
bool visitFromToPath(const Pin *from_pin,
Vertex *from_vertex,
const RiseFall *from_rf,
Tag *from_tag,
@ -277,7 +277,7 @@ private:
Edge *edge,
const Pin *to_pin,
Vertex *to_vertex) override;
virtual void visit(Vertex *) override {} // Not used.
void visit(Vertex *) override {} // Not used.
void insertUniqueEdgeDiv(Diversion *div);
void reportDiversion(const Edge *edge,
const TimingArc *div_arc,

View File

@ -601,9 +601,9 @@ class MakePathEnds1 : public PathEndVisitor
public:
MakePathEnds1(PathGroups *path_groups);
MakePathEnds1(const MakePathEnds1&) = default;
virtual PathEndVisitor *copy() const;
virtual void visit(PathEnd *path_end);
virtual void vertexEnd(Vertex *vertex);
PathEndVisitor *copy() const override;
void visit(PathEnd *path_end) override;
void vertexEnd(Vertex *vertex) override;
private:
void visitPathEnd(PathEnd *path_end,
@ -676,10 +676,10 @@ public:
MakePathEndsAll(int endpoint_path_count,
PathGroups *path_groups);
MakePathEndsAll(const MakePathEndsAll&) = default;
virtual ~MakePathEndsAll();
virtual PathEndVisitor *copy() const;
virtual void visit(PathEnd *path_end);
virtual void vertexEnd(Vertex *vertex);
~MakePathEndsAll() override;
PathEndVisitor *copy() const override;
void visit(PathEnd *path_end) override;
void vertexEnd(Vertex *vertex) override;
private:
void visitPathEnd(PathEnd *path_end,
@ -906,8 +906,8 @@ public:
const StaState *sta);
MakeEndpointPathEnds(const MakeEndpointPathEnds &make_path_ends);
~MakeEndpointPathEnds();
virtual VertexVisitor *copy() const;
virtual void visit(Vertex *vertex);
VertexVisitor *copy() const override;
void visit(Vertex *vertex) override;
private:
VisitPathEnds visit_path_ends_;

View File

@ -733,8 +733,8 @@ public:
Search *search);
protected:
virtual void visit(const Pin *drvr,
const Pin *load);
void visit(const Pin *drvr,
const Pin *load) override;
Graph *graph_;
Search *search_;
@ -3444,9 +3444,9 @@ public:
FindEndRequiredVisitor(RequiredCmp *required_cmp,
const StaState *sta);
FindEndRequiredVisitor(const StaState *sta);
virtual ~FindEndRequiredVisitor();
virtual PathEndVisitor *copy() const;
virtual void visit(PathEnd *path_end);
~FindEndRequiredVisitor() override;
PathEndVisitor *copy() const override;
void visit(PathEnd *path_end) override;
protected:
const StaState *sta_;
@ -4092,8 +4092,8 @@ public:
FindEndSlackVisitor(SlackSeq &slacks,
const StaState *sta);
FindEndSlackVisitor(const FindEndSlackVisitor &) = default;
virtual PathEndVisitor *copy() const;
virtual void visit(PathEnd *path_end);
PathEndVisitor *copy() const override;
void visit(PathEnd *path_end) override;
protected:
SlackSeq &slacks_;

View File

@ -114,9 +114,9 @@ class StaDelayCalcObserver : public DelayCalcObserver
{
public:
StaDelayCalcObserver(Search *search);
virtual void delayChangedFrom(Vertex *vertex);
virtual void delayChangedTo(Vertex *vertex);
virtual void checkDelayChangedTo(Vertex *vertex);
void delayChangedFrom(Vertex *vertex) override;
void delayChangedTo(Vertex *vertex) override;
void checkDelayChangedTo(Vertex *vertex) override;
private:
Search *search_;
@ -3390,8 +3390,8 @@ public:
bool include_port_paths,
StaState *sta);
MinPeriodEndVisitor(const MinPeriodEndVisitor &) = default;
virtual PathEndVisitor *copy() const;
virtual void visit(PathEnd *path_end);
PathEndVisitor *copy() const override;
void visit(PathEnd *path_end) override;
float minPeriod() const { return min_period_; }
private:

View File

@ -38,7 +38,7 @@ public:
ReportStd();
protected:
virtual size_t printConsole(const char *buffer, size_t length);
size_t printConsole(const char *buffer, size_t length) override;
virtual size_t printErrorConsole(const char *buffer, size_t length);
};