Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1033)

Unified Diff: gdb/testsuite/gdb.cp/derivation.cc

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/testsuite/gdb.cp/demangle.exp ('k') | gdb/testsuite/gdb.cp/derivation.exp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/testsuite/gdb.cp/derivation.cc
diff --git a/gdb/testsuite/gdb.cp/derivation.cc b/gdb/testsuite/gdb.cp/derivation.cc
index 942fcd26b65206f8e3a364965073e42ea0475168..fbd75cc1ea8ccafb8d27eb1e0b59c72290cc2b14 100644
--- a/gdb/testsuite/gdb.cp/derivation.cc
+++ b/gdb/testsuite/gdb.cp/derivation.cc
@@ -1,32 +1,64 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2003-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+extern void foo2 (); /* from derivation2.cc */
+
+namespace N {
+ typedef double value_type;
+ struct Base { typedef int value_type; };
+ struct Derived : public Base {
+ void doit (void) const {
+ int i = 3;
+
+ while (i > 0)
+ --i;
+ }
+ };
+}
+
class A {
public:
- int a;
- int aa;
+ typedef int value_type;
+ value_type a;
+ value_type aa;
A()
{
a=1;
aa=2;
}
- int afoo();
- int foo();
-
+ value_type afoo();
+ value_type foo();
};
class B {
public:
- int b;
- int bb;
+ A::value_type b;
+ A::value_type bb;
B()
{
b=3;
bb=4;
}
- int bfoo();
- int foo();
+ A::value_type bfoo();
+ A::value_type foo();
};
@@ -51,48 +83,48 @@ public:
class D : private A, public B, protected C {
public:
- int d;
- int dd;
+ value_type d;
+ value_type dd;
D()
{
d =7;
dd=8;
}
- int dfoo();
- int foo();
+ value_type dfoo();
+ value_type foo();
};
class E : public A, B, protected C {
public:
- int e;
- int ee;
+ value_type e;
+ value_type ee;
E()
{
e =9;
ee=10;
}
- int efoo();
- int foo();
+ value_type efoo();
+ value_type foo();
};
class F : A, public B, C {
public:
- int f;
- int ff;
+ value_type f;
+ value_type ff;
F()
{
f =11;
ff=12;
}
- int ffoo();
- int foo();
+ value_type ffoo();
+ value_type foo();
};
@@ -118,30 +150,72 @@ public:
};
+class Z : public A
+{
+public:
+ typedef float value_type;
+ value_type z;
+};
+
+class ZZ : public Z
+{
+public:
+ value_type zz;
+};
+
+class V_base
+{
+public:
+ virtual void m();
+ int base;
+};
+void
+V_base::m()
+{
+}
+class V_inter : public virtual V_base
+{
+public:
+ virtual void f();
+ int inter;
+};
+
+void
+V_inter::f()
+{
+}
-int A::afoo() {
+class V_derived : public V_inter
+{
+public:
+ double x;
+};
+
+V_derived vderived;
+
+A::value_type A::afoo() {
return 1;
}
-int B::bfoo() {
+A::value_type B::bfoo() {
return 2;
}
-int C::cfoo() {
+A::value_type C::cfoo() {
return 3;
}
-int D::dfoo() {
+D::value_type D::dfoo() {
return 4;
}
-int E::efoo() {
+E::value_type E::efoo() {
return 5;
}
-int F::ffoo() {
+F::value_type F::ffoo() {
return 6;
}
@@ -149,37 +223,37 @@ int G::gfoo() {
return 77;
}
-int A::foo()
+A::value_type A::foo()
{
return 7;
}
-int B::foo()
+A::value_type B::foo()
{
return 8;
}
-int C::foo()
+A::value_type C::foo()
{
return 9;
}
-int D::foo()
+D::value_type D::foo()
{
return 10;
}
-int E::foo()
+E::value_type E::foo()
{
return 11;
}
-int F::foo()
+F::value_type F::foo()
{
return 12;
@@ -207,7 +281,9 @@ int main(void)
E e_instance;
F f_instance;
G g_instance;
-
+ Z z_instance;
+ ZZ zz_instance;
+
marker1(); // marker1-returns-here
a_instance.a = 20; // marker1-returns-here
@@ -222,13 +298,16 @@ int main(void)
e_instance.ee =29;
f_instance.f =30;
f_instance.ff =31;
-
-
-
-
+ g_instance.g = 32;
+ g_instance.gg = 33;
+ z_instance.z = 34.0;
+ zz_instance.zz = 35.0;
+
+ N::Derived dobj;
+ N::Derived::value_type d = 1;
+ N::value_type n = 3.0;
+ dobj.doit ();
+ foo2 ();
return 0;
}
-
-
-
« no previous file with comments | « gdb/testsuite/gdb.cp/demangle.exp ('k') | gdb/testsuite/gdb.cp/derivation.exp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698