aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDavid Carlton <carlton@bactrian.org>2004-03-05 17:32:25 +0000
committerDavid Carlton <carlton@bactrian.org>2004-03-05 17:32:25 +0000
commit1198ecbe719975c4549f5cae42f1150e6f75a950 (patch)
tree13e0f1a14b80e5c26e9784eab568ecb7fc3e4d98 /gdb
parentbae25f1962ed5d93828900ab046d4f0de6898db9 (diff)
downloadgdb-1198ecbe719975c4549f5cae42f1150e6f75a950.zip
gdb-1198ecbe719975c4549f5cae42f1150e6f75a950.tar.gz
gdb-1198ecbe719975c4549f5cae42f1150e6f75a950.tar.bz2
2004-03-05 David Carlton <carlton@kealia.com>
* cp-namespace.c (cp_lookup_transparent_type_loop): Fix recursion bug. 2004-03-05 David Carlton <carlton@kealia.com> * gdb.cp/rtti.exp: Add 'print *obj3' test. * gdb.cp/rtti.h: Update copyright. (namespace n2::n3): New. * gdb.cp/rtti1.cc: (refer_to (n2::n3::C3 *)): New. (n2::n3::func3): New. (main): Call n2::n3::func3. * gdb.cp/rtti2.cc: Update copyright. (n2::create3): New.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/cp-namespace.c2
-rw-r--r--gdb/testsuite/ChangeLog11
-rw-r--r--gdb/testsuite/gdb.cp/rtti.exp5
-rw-r--r--gdb/testsuite/gdb.cp/rtti.h10
-rw-r--r--gdb/testsuite/gdb.cp/rtti1.cc20
-rw-r--r--gdb/testsuite/gdb.cp/rtti2.cc6
7 files changed, 55 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 82dfcb8..2be6130 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2004-03-05 David Carlton <carlton@kealia.com>
+
+ * cp-namespace.c (cp_lookup_transparent_type_loop): Fix recursion
+ bug.
+
2004-03-05 Mark Kettenis <kettenis@gnu.org>
* sparc-tdep.c: Fix typo in comment.
diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c
index a731352..910289f 100644
--- a/gdb/cp-namespace.c
+++ b/gdb/cp-namespace.c
@@ -603,7 +603,7 @@ static struct type *
cp_lookup_transparent_type_loop (const char *name, const char *scope,
int length)
{
- int scope_length = cp_find_first_component (scope + length);
+ int scope_length = length + cp_find_first_component (scope + length);
char *full_name;
/* If the current scope is followed by "::", look in the next
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 569351c..d782a27 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2004-03-05 David Carlton <carlton@kealia.com>
+
+ * gdb.cp/rtti.exp: Add 'print *obj3' test.
+ * gdb.cp/rtti.h: Update copyright.
+ (namespace n2::n3): New.
+ * gdb.cp/rtti1.cc: (refer_to (n2::n3::C3 *)): New.
+ (n2::n3::func3): New.
+ (main): Call n2::n3::func3.
+ * gdb.cp/rtti2.cc: Update copyright.
+ (n2::create3): New.
+
2004-03-04 Mark Kettenis <kettenis@gnu.org>
* gdb.asm/openbsd.inc: Fix typo.
diff --git a/gdb/testsuite/gdb.cp/rtti.exp b/gdb/testsuite/gdb.cp/rtti.exp
index 0a8a2d7..18f3cc2 100644
--- a/gdb/testsuite/gdb.cp/rtti.exp
+++ b/gdb/testsuite/gdb.cp/rtti.exp
@@ -140,5 +140,10 @@ gdb_continue_to_breakpoint "end of constructors in func"
gdb_test "print *obj" "\\$\[0-9\]* = {<n2::Base2> = .*}"
+gdb_breakpoint [gdb_get_line_number "func3-constructs-done"]
+gdb_continue_to_breakpoint "end of constructors in func3"
+
+gdb_test "print *obj3" "\\$\[0-9\]* = {<n2::C2> = .*}"
+
gdb_exit
return 0
diff --git a/gdb/testsuite/gdb.cp/rtti.h b/gdb/testsuite/gdb.cp/rtti.h
index 879896d..c324925 100644
--- a/gdb/testsuite/gdb.cp/rtti.h
+++ b/gdb/testsuite/gdb.cp/rtti.h
@@ -1,6 +1,6 @@
/* Code to go along with tests in rtti.exp.
- Copyright 2003 Free Software Foundation, Inc.
+ Copyright 2003, 2004 Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
@@ -45,4 +45,12 @@ namespace n2 {
};
extern C2 *create2();
+
+ namespace n3 {
+ class C3 : public C2 {
+ public:
+ };
+ }
+
+ extern n3::C3 *create3();
}
diff --git a/gdb/testsuite/gdb.cp/rtti1.cc b/gdb/testsuite/gdb.cp/rtti1.cc
index de8e12f..d32ac04 100644
--- a/gdb/testsuite/gdb.cp/rtti1.cc
+++ b/gdb/testsuite/gdb.cp/rtti1.cc
@@ -63,16 +63,33 @@ void refer_to (n2::C2 *obj)
// Do nothing.
}
+void refer_to (n2::n3::C3 *obj)
+{
+ // Do nothing.
+}
+
namespace n2
{
void func ()
{
C2 *obj = create2 ();
- refer_to (obj); // func-constructs-done
+ refer_to (obj); // func-constructs-done
return;
}
+
+ namespace n3
+ {
+ void func3 ()
+ {
+ C3 *obj3 = create3 ();
+
+ refer_to (obj3); // func3-constructs-done
+
+ return;
+ }
+ }
}
int main()
@@ -84,6 +101,7 @@ int main()
C2 *e2 = create2();
n2::func(); // main-constructs-done
+ n2::n3::func3();
return 0;
}
diff --git a/gdb/testsuite/gdb.cp/rtti2.cc b/gdb/testsuite/gdb.cp/rtti2.cc
index 8bb1ed6..353a1f8 100644
--- a/gdb/testsuite/gdb.cp/rtti2.cc
+++ b/gdb/testsuite/gdb.cp/rtti2.cc
@@ -1,6 +1,6 @@
/* Code to go along with tests in rtti.exp.
- Copyright 2003 Free Software Foundation, Inc.
+ Copyright 2003, 2004 Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
@@ -33,4 +33,8 @@ namespace n2 {
return new D2(0, 0);
}
+ n3::C3 *create3() {
+ return new n3::C3();
+ }
+
}