Re: [PATCH] Fix mi "-var-create" regression

Luis Machado
2012-12-26T12:31:19Z

[-- Attachment #1: Type: text/plain, Size: 813 bytes --]

Hi,

On 12/07/2012 12:51 AM, Luis Machado wrote:
> On 12/07/2012 12:48 AM, Joel Brobecker wrote:
>> And do you absolutely need the register to be of type (void *)
>> for the test to exercise the original problem? I don't know if
>> we can find any that's guaranteed to be of any type. So you might
>> have to use different register names depending on the target.
>>
>
> Yeah. I may need to do something different here. I didn't forget about
> this one though.
>
> Luis

Casting seems to be the most sensible solution to this problem.

This patch addresses the problem Andreas saw by creating a variable of
type (void *). This way we are guaranteed to have the type we need to
reproduce the problem.

I thought about replacing SP with PC, but SP is probably available for
all targets.

What do you think?

Luis

[-- Attachment #2: var_create_rtti.diff --]
[-- Type: text/x-patch, Size: 985 bytes --]

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 4620c2e..9ffd991 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-12-26 Luis Machado <lgustavo@codesourcery.com>
+
+ * gdb.mi/mi-var-create-rtti.exp: Create a variable of
+ type void *.
+
2012-12-25 Jan Kratochvil <jan.kratochvil@redhat.com>

* gdb.mi/mi-fullname-deleted.exp: New file.
diff --git a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
index 16d8551..d6697de 100644
--- a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
@@ -46,7 +46,7 @@ if ![mi_run_to_main] {
mi_gdb_test "-gdb-set print object on" ".*"

# Test creating a variable for $sp
-mi_gdb_test "-var-create sp1 * \$sp" \
+mi_gdb_test "-var-create sp1 * ((void*)\$sp)" \
"\\^done,name=\"sp1\",numchild=\"0\",value=\"$hex\",type=\"void \\*\",has_more=\"0\"" \
"-var-create sp1 * \$sp"
gdb_exit