This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: gdb.cp/userdef.exp, class reprensentation
Daniel Jacobowitz wrote:
On Mon, Oct 13, 2008 at 01:38:36PM +0200, Denis PILAT wrote:
But the userdef.exp testsuite only expects gdb to return the 2nd
semantic, which is fine with some gdb based debuggers, but not for all.
What does "some gdb based debuggers" mean? The testsuite is supposed
to accomodate the version of GDB it's shipped with, not other
versions.
I would have talked about compiler generated information. I have a
compiler that generates debug information so that gdb prints this class
as a class, and not a struct!
The target is not a native one but an internal ST one, but I guess that
there are other targeted gdbs that behave the same, and this behavior is
correct to me! My patch was just to let some gdbs avoid an error in the
testsuite that is not a real error, unless there is a consensus that
tells simple class must be represented as structures.
@@ -153,7 +153,14 @@
gdb_test "print c" "\\\$\[0-9\]* = {m = {z = .*}}"
Also, this is whitespace-damaged.
Sorry, I don't see it, I re-attach my patch as a real attachment, may be
my mailer did something wrong
--
Denis
2008-10-13 Denis Pilat <denis.pilat@st.com>
* gdb.cp/userdef.exp: add a successful patern for for "ptype &*c".
--- userdef.exp 2008-01-10 13:44:46.000000000 +0100
+++ /local/pd10/sts-gdb/trunk/sts-gdb/src/gdb/testsuite/gdb.cp/userdef.exp 2008-10-13 13:32:36.000000000 +0200
@@ -153,7 +153,14 @@ gdb_test "break A2::'operator +'" ".*Bre
gdb_test "print c" "\\\$\[0-9\]* = {m = {z = .*}}"
gdb_test "print *c" "\\\$\[0-9\]* = \\(Member &\\) @$hex: {z = .*}"
gdb_test "print &*c" "\\\$\[0-9\]* = \\(Member \\*\\) $hex"
-gdb_test "ptype &*c" "type = struct Member {\[\r\n \]+int z;\[\r\n\]+} &\\*"
+gdb_test_multiple "ptype &*c" "ptype &*c" {
+ -re "type = struct Member {\[\r\n \]+int z;\[\r\n\]+} &\\*.*$gdb_prompt $" {
+ pass "ptype &*c"
+ }
+ -re "type = class Member {\[\r\n \]+ public:\[\r\n \]+int z;\[\r\n\]+} &\\*.*$gdb_prompt $" {
+ pass "ptype &*c"
+ }
+}
gdb_exit
return 0