b2febfff46
* gdb.cp/pr9594.cc: Prevent GCC from optimizing 'a' out.
52 lines
787 B
C++
52 lines
787 B
C++
|
|
class Base
|
|
{
|
|
public:
|
|
virtual int get_foo () { return 1; }
|
|
int base_function_only () { return 2; }
|
|
};
|
|
|
|
class Foo : public Base
|
|
{
|
|
|
|
private:
|
|
int foo_value;
|
|
|
|
public:
|
|
Foo () { foo_value = 0;}
|
|
Foo (int i) { foo_value = i;}
|
|
~Foo () { }
|
|
void set_foo (int value);
|
|
int get_foo ();
|
|
|
|
// Something similar to a constructor name.
|
|
void Foofoo ();
|
|
|
|
bool operator== (const Foo &other) { return foo_value == other.foo_value; }
|
|
};
|
|
|
|
void Foo::set_foo (int value)
|
|
{
|
|
foo_value = value;
|
|
}
|
|
|
|
int Foo::get_foo ()
|
|
{
|
|
return foo_value;
|
|
}
|
|
|
|
void Foo::Foofoo ()
|
|
{
|
|
}
|
|
|
|
int main ()
|
|
{
|
|
// Anonymous struct with method.
|
|
struct {
|
|
int get() { return 5; }
|
|
} a;
|
|
Foo foo1;
|
|
foo1.set_foo (42); // Set breakpoint here.
|
|
a.get(); // Prevent compiler from throwing 'a' away.
|
|
return 0;
|
|
}
|