@@ -68,7 +68,7 @@ public:
6868 path_delay
6969 };
7070
71- virtual PathEnd *copy () = 0;
71+ virtual PathEnd *copy () const = 0;
7272 virtual ~PathEnd ();
7373 void deletePath ();
7474 Path *path () { return path_; }
@@ -84,6 +84,8 @@ public:
8484 PathAPIndex pathIndex (const StaState *sta) const ;
8585 virtual void reportShort (const ReportPath *report) const = 0;
8686 virtual void reportFull (const ReportPath *report) const = 0;
87+ PathGroup *pathGroup () const { return path_group_; }
88+ void setPathGroup (PathGroup *path_group);
8789
8890 // Predicates for PathEnd type.
8991 // Default methods overridden by respective types.
@@ -216,6 +218,7 @@ protected:
216218 PathDelay *path_delay,
217219 const StaState *sta);
218220 Path *path_;
221+ PathGroup *path_group_;
219222};
220223
221224class PathEndUnconstrained : public PathEnd
@@ -224,7 +227,7 @@ public:
224227 explicit PathEndUnconstrained (Path *path);
225228 virtual Type type () const ;
226229 virtual const char *typeName () const ;
227- virtual PathEnd *copy ();
230+ virtual PathEnd *copy () const ;
228231 virtual void reportShort (const ReportPath *report) const ;
229232 virtual void reportFull (const ReportPath *report) const ;
230233 virtual bool isUnconstrained () const ;
@@ -321,7 +324,7 @@ public:
321324 Path *clk_path,
322325 MultiCyclePath *mcp,
323326 const StaState *sta);
324- virtual PathEnd *copy ();
327+ virtual PathEnd *copy () const ;
325328 virtual Type type () const ;
326329 virtual const char *typeName () const ;
327330 virtual void reportShort (const ReportPath *report) const ;
@@ -367,7 +370,7 @@ public:
367370 virtual bool isCheck () const { return false ; }
368371 virtual bool isLatchCheck () const { return true ; }
369372 virtual PathDelay *pathDelay () const { return path_delay_; }
370- virtual PathEnd *copy ();
373+ virtual PathEnd *copy () const ;
371374 Path *latchDisable ();
372375 const Path *latchDisable () const ;
373376 virtual void reportShort (const ReportPath *report) const ;
@@ -428,7 +431,7 @@ public:
428431 Path *clk_path,
429432 MultiCyclePath *mcp,
430433 const StaState *sta);
431- virtual PathEnd *copy ();
434+ virtual PathEnd *copy () const ;
432435 virtual Type type () const ;
433436 virtual const char *typeName () const ;
434437 virtual void reportShort (const ReportPath *report) const ;
@@ -474,7 +477,7 @@ public:
474477 MultiCyclePath *mcp,
475478 ArcDelay margin,
476479 const StaState *sta);
477- virtual PathEnd *copy ();
480+ virtual PathEnd *copy () const ;
478481 virtual Type type () const ;
479482 virtual const char *typeName () const ;
480483 virtual void reportShort (const ReportPath *report) const ;
@@ -506,7 +509,7 @@ public:
506509 Path *data_clk_path,
507510 MultiCyclePath *mcp,
508511 const StaState *sta);
509- virtual PathEnd *copy ();
512+ virtual PathEnd *copy () const ;
510513 virtual Type type () const ;
511514 virtual const char *typeName () const ;
512515 virtual void reportShort (const ReportPath *report) const ;
@@ -560,7 +563,7 @@ public:
560563 Path *path,
561564 OutputDelay *output_delay,
562565 const StaState *sta);
563- virtual PathEnd *copy ();
566+ virtual PathEnd *copy () const ;
564567 virtual Type type () const ;
565568 virtual const char *typeName () const ;
566569 virtual void reportShort (const ReportPath *report) const ;
0 commit comments