1*66e63ce3Schristos // Class funk has a constructor and an ordinary method
2*66e63ce3Schristos // Test for CHFts23426
3*66e63ce3Schristos 
4*66e63ce3Schristos class funk
5*66e63ce3Schristos {
6*66e63ce3Schristos public:
7*66e63ce3Schristos   funk();
8*66e63ce3Schristos   void getFunky(int a, int b);
9*66e63ce3Schristos   int data_;
10*66e63ce3Schristos };
11*66e63ce3Schristos 
funk()12*66e63ce3Schristos funk::funk()
13*66e63ce3Schristos   : data_(33)
14*66e63ce3Schristos {
15*66e63ce3Schristos }
16*66e63ce3Schristos 
getFunky(int a,int b)17*66e63ce3Schristos void funk::getFunky(int a, int b)
18*66e63ce3Schristos {
19*66e63ce3Schristos   int res;
20*66e63ce3Schristos   res = a + b - data_;
21*66e63ce3Schristos   data_ = res;
22*66e63ce3Schristos }
23*66e63ce3Schristos 
24*66e63ce3Schristos // Class A has const and volatile methods
25*66e63ce3Schristos 
26*66e63ce3Schristos class A {
27*66e63ce3Schristos public:
28*66e63ce3Schristos   int x;
29*66e63ce3Schristos   int y;
30*66e63ce3Schristos   int foo (int arg);
31*66e63ce3Schristos   int bar (int arg) const;
32*66e63ce3Schristos   int baz (int arg, char c) volatile;
33*66e63ce3Schristos   int qux (int arg, float f) const volatile;
34*66e63ce3Schristos };
35*66e63ce3Schristos 
foo(int arg)36*66e63ce3Schristos int A::foo (int arg)
37*66e63ce3Schristos {
38*66e63ce3Schristos   x += arg;
39*66e63ce3Schristos   return arg *2;
40*66e63ce3Schristos }
41*66e63ce3Schristos 
bar(int arg) const42*66e63ce3Schristos int A::bar (int arg) const
43*66e63ce3Schristos {
44*66e63ce3Schristos   return arg + 2 * x;
45*66e63ce3Schristos }
46*66e63ce3Schristos 
baz(int arg,char c)47*66e63ce3Schristos int A::baz (int arg, char c) volatile
48*66e63ce3Schristos {
49*66e63ce3Schristos   return arg - 2 * x + c;
50*66e63ce3Schristos }
51*66e63ce3Schristos 
qux(int arg,float f) const52*66e63ce3Schristos int A::qux (int arg, float f) const volatile
53*66e63ce3Schristos {
54*66e63ce3Schristos   if (f > 0)
55*66e63ce3Schristos     return 2 * arg - x;
56*66e63ce3Schristos   else
57*66e63ce3Schristos     return 2 * arg + x;
58*66e63ce3Schristos }
59*66e63ce3Schristos 
60*66e63ce3Schristos 
main()61*66e63ce3Schristos int main()
62*66e63ce3Schristos {
63*66e63ce3Schristos   A a;
64*66e63ce3Schristos   int k;
65*66e63ce3Schristos 
66*66e63ce3Schristos   k = 10;
67*66e63ce3Schristos   a.x = k * 2;
68*66e63ce3Schristos 
69*66e63ce3Schristos   k = a.foo(13);
70*66e63ce3Schristos 
71*66e63ce3Schristos   k += a.bar(15);
72*66e63ce3Schristos 
73*66e63ce3Schristos   // Test for CHFts23426 follows
74*66e63ce3Schristos   funk f;
75*66e63ce3Schristos   f.getFunky(1, 2);
76*66e63ce3Schristos   return 0;
77*66e63ce3Schristos }
78*66e63ce3Schristos 
79*66e63ce3Schristos 
80*66e63ce3Schristos 
81