gdb/testsuite: allow for Clang style destructors on gdb.cp/m-static.exp
authorBruno Larsen <blarsen@redhat.com>
Fri, 9 Sep 2022 13:56:25 +0000 (15:56 +0200)
committerBruno Larsen <blarsen@redhat.com>
Fri, 11 Nov 2022 09:13:39 +0000 (10:13 +0100)
when running gdb.cp/m-static.exp using Clang, we get the following
failures:

    print test1.~gnu_obj_1^M
    $6 = {void (gnu_obj_1 * const)} 0x555555555470 <gnu_obj_1::~gnu_obj_1()>^M
    (gdb) FAIL: gdb.cp/m-static.exp: simple object instance, print destructor
    ptype test1.~gnu_obj_1^M
    type = void (gnu_obj_1 * const)^M
    (gdb) FAIL: gdb.cp/m-static.exp: simple object instance, ptype destructor
    print test1.'~gnu_obj_1'^M
    $7 = {void (gnu_obj_1 * const)} 0x555555555470 <gnu_obj_1::~gnu_obj_1()>^M
    (gdb) FAIL: gdb.cp/m-static.exp: simple object instance, print quoted destructor

This is because the test is expecting an extra integer parameter on the
destructor. Looking at the debuginfo, it seems that there is nothing
actually wrong with this output, so these tests were changed to test
multiple possible regexps.

Approved-by: Tom Tromey <tom@tromey.com>
gdb/testsuite/gdb.cp/m-static.exp

index 979de23a44f9f7f61c4c024bd23ada1b9013d37a..1239dbc0f1dd786ac413397b16f54694ee67cb45 100644 (file)
@@ -102,15 +102,16 @@ if { [is_aarch32_target] } {
        {type = void \(single_constructor \* const\)} \
        "simple object class, ptype constructor"
 
-    gdb_test "print test1.~gnu_obj_1" \
-       { = {void \(gnu_obj_1 \* const, int\)} 0x[0-9a-f]+ <gnu_obj_1::~gnu_obj_1\(\)>} \
+    gdb_test "print test1.~gnu_obj_1"\
+       { = {void \(gnu_obj_1 \* const(?:, int)?\)} 0x[0-9a-f]+ <gnu_obj_1::~gnu_obj_1\(\)>}\
        "simple object instance, print destructor"
-    gdb_test "ptype test1.~gnu_obj_1" \
-       {type = void \(gnu_obj_1 \* const, int\)} \
+
+    gdb_test "ptype test1.~gnu_obj_1"\
+       {type = void \(gnu_obj_1 \* const(?:, int)?\)}\
        "simple object instance, ptype destructor"
 
     gdb_test "print test1.'~gnu_obj_1'" \
-       { = {void \(gnu_obj_1 \*( const)?, int\)} 0x[0-9a-f]+ <gnu_obj_1::~gnu_obj_1\(\)>} \
+       { = {void \(gnu_obj_1 \*( const)?(?:, int)?\)} 0x[0-9a-f]+ <gnu_obj_1::~gnu_obj_1\(\)>} \
        "simple object instance, print quoted destructor"
 
     gdb_test "ptype gnu_obj_1::'~gnu_obj_1'" \