aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.cp/pr9594.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.cp/pr9594.cc')
-rw-r--r--gdb/testsuite/gdb.cp/pr9594.cc51
1 files changed, 51 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cp/pr9594.cc b/gdb/testsuite/gdb.cp/pr9594.cc
new file mode 100644
index 0000000..bb7e1d6
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/pr9594.cc
@@ -0,0 +1,51 @@
+
+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.
+ return 0;
+}