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