OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.brendan/] [nest21.C] - Blame information for rev 779

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do run  }
2
// GROUPS passed nested-classes
3
#include 
4
#include 
5
#include 
6
 
7
static char output[1024];
8
 
9
class BDDRetrace {
10
public:
11
    class Dump {
12
    public:
13
        virtual Dump& operator<<(char c) = 0;
14
        virtual Dump& operator<<(int i) = 0;
15
        virtual Dump& operator<<(double r) = 0;
16
    };
17
 
18
    class Dump1: public Dump {
19
    public:
20
        Dump& operator<<(char c);
21
        Dump& operator<<(int i);
22
        Dump& operator<<(double r);
23
    };
24
};
25
 
26
class Dump2: public BDDRetrace::Dump {
27
public:
28
    BDDRetrace::Dump& operator<<(char c);
29
    BDDRetrace::Dump& operator<<(int i);
30
    BDDRetrace::Dump& operator<<(double r);
31
};
32
 
33
BDDRetrace::Dump&
34
BDDRetrace::Dump1::operator<<(char c)
35
{ char tempout[1024];
36
  std::sprintf(tempout, "%s%s%c", output, "1-", c);
37
  std::strcpy(output, tempout);
38
  return *this;
39
}
40
 
41
BDDRetrace::Dump&
42
BDDRetrace::Dump1::operator<<(int i)
43
{ char tempout[1024];
44
  std::sprintf (tempout, "%s%s%d", output, "1-", i);
45
  std::strcpy (output, tempout);
46
  return *this; }
47
 
48
BDDRetrace::Dump&
49
BDDRetrace::Dump1::operator<<(double r)
50
{ char tempout[1024];
51
  std::sprintf (tempout, "%s%s%1.0f", output, "1-", r);
52
  std::strcpy (output, tempout);
53
  return *this; }
54
 
55
BDDRetrace::Dump&
56
Dump2::operator<<(char c)
57
{ char tempout[1024];
58
  std::sprintf (tempout, "%s%s%c", output, "2-", c);
59
  std::strcpy (output, tempout);
60
  return *this; }
61
 
62
BDDRetrace::Dump&
63
Dump2::operator<<(int i)
64
{ char tempout[1024];
65
  std::sprintf (tempout, "%s%s%d", output, "2-", i);
66
  std::strcpy (output, tempout);
67
  return *this; }
68
 
69
BDDRetrace::Dump&
70
Dump2::operator<<(double r)
71
{ char tempout[1024];
72
  std::sprintf (tempout, "%s%s%1.0f", output, "2-", r);
73
  std::strcpy (output, tempout);
74
  return *this; }
75
 
76
int main()
77
{
78
    BDDRetrace::Dump1 d1;
79
    Dump2 d2;
80
 
81
    std::sprintf (output, " ");
82
 
83
    d1 << 'a';
84
    d1 << 1;
85
    d1 << 1.0;
86
 
87
    d2 << 'a';
88
    d2 << 1;
89
    d2 << 1.0;
90
 
91
    if (std::strcmp (output, " 1-a1-11-12-a2-12-1") == 0)
92
      std::printf ("PASS\n");
93
    else
94
      { std::printf ("FAIL\n"); return 1; }
95
 
96
    return 0;
97
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.