1 // { dg-do assemble  }
2 // GROUPS passed old-abort
3 class D_Interval;
4 
5 class Date
6 {
7  public:
8   Date(const D_Interval*,const Date&);
9 private:
10   const D_Interval* interval;
11 };
12 
13 class Time_Interval
14 {
15  public:
16    Time_Interval(const Date& start,const Date& stop);
Start()17    const Date& Start() const { return start; }
Stop()18    const Date& Stop() const { return stop; }
19  private:
20    Date start;
21    Date stop;
22 };
23 
24 class Dated_Data
25 {
26  public:
27    Dated_Data(const Time_Interval& dates);
28    virtual ~Dated_Data();
Dates()29    Time_Interval Dates() const { return dates; }
30  private:
31    Time_Interval dates;
32 };
33 
34 class Raw_Data : public Dated_Data
35 {
36  public:
37    Raw_Data(const Dated_Data *source,const D_Interval& period);
38 };
39 
Raw_Data(const Dated_Data * source,const D_Interval & period)40 Raw_Data::Raw_Data(const Dated_Data *source,const D_Interval& period)
41      : Dated_Data(Time_Interval(Date(&period,source->Dates().Start()),
42 				Date(&period,source->Dates().Stop())))
43 {
44 }
45