binutils-gdb/gdb/testsuite/gdb.cp/method.cc

81 lines
964 B
C++

// Class funk has a constructor and an ordinary method
// Test for CHFts23426
class funk
{
public:
funk();
void getFunky(int a, int b);
int data_;
};
funk::funk()
: data_(33)
{
}
void funk::getFunky(int a, int b)
{
int res;
res = a + b - data_;
data_ = res;
}
// Class A has const and volatile methods
class A {
public:
int x;
int y;
int foo (int arg);
int bar (int arg) const;
int baz (int arg, char c) volatile;
int qux (int arg, float f) const volatile;
};
int A::foo (int arg)
{
x += arg;
return arg *2;
}
int A::bar (int arg) const
{
return arg + 2 * x;
}
int A::baz (int arg, char c) volatile
{
return arg - 2 * x + c;
}
int A::qux (int arg, float f) const volatile
{
if (f > 0)
return 2 * arg - x;
else
return 2 * arg + x;
}
int main()
{
A a;
int k;
k = 10;
a.x = k * 2;
k = a.foo(13);
k += a.bar(15);
// Test for CHFts23426 follows
funk f;
f.getFunky(1, 2);
return 0;
}