From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7862) id 67C653857004; Mon, 12 Sep 2022 12:17:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 67C653857004 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1662985073; bh=UqJ8+6ZFnWlihHooAs8HYoKqT74q3SMuStJyNuVtIUs=; h=From:To:Subject:Date:From; b=c8iA7mnk2dyy45dMLpV8eoRej/YMHIGFTTpEDrfqbJEd5Rcv+fYvUz/6/EOZbxH2X e32KhIFl+lAc1RZMlpI4b2VQ6jQ0UWSrtd3cGRlCa744yrlweN1f4EHgKtwElYM07w 0N2RyHBvvLl1XMdwMuuOFEjtYJKxNLZfLhmkO7MU= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Bruno Larsen To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb/testsuite: change gdb.base/nodebug.exp to not fail with clang X-Act-Checkin: binutils-gdb X-Git-Author: Bruno Larsen X-Git-Refname: refs/heads/master X-Git-Oldrev: 825a844fdcfd4532cddde14d7bb38f1f981fa9fe X-Git-Newrev: e33020494502d0879c418d69d5a2fd6f6453863a Message-Id: <20220912121753.67C653857004@sourceware.org> Date: Mon, 12 Sep 2022 12:17:53 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3De33020494502= d0879c418d69d5a2fd6f6453863a commit e33020494502d0879c418d69d5a2fd6f6453863a Author: Bruno Larsen Date: Wed Jul 20 16:44:30 2022 -0300 gdb/testsuite: change gdb.base/nodebug.exp to not fail with clang =20 Clang organizes the variables differently to gcc in the original version of this code, leading to the following differences when testing p (int*) &dataglobal + 1 =20 gcc: $16 =3D (int *) 0x404034 =20 clang: $16 =3D (int *) 0x404034 =20 However, since the important part of this test doesn't seem to be which symbol is linked, but rather if GDB is correctly increasing the address. This test was changed to actually measure address changes, instead of assuming the ordering and naming of symbols. =20 Co-Authored-By: Andrew Burgess Diff: --- gdb/testsuite/gdb.base/nodebug.exp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.base/nodebug.exp b/gdb/testsuite/gdb.base/no= debug.exp index 68a21eb07dd..1deed596095 100644 --- a/gdb/testsuite/gdb.base/nodebug.exp +++ b/gdb/testsuite/gdb.base/nodebug.exp @@ -170,6 +170,7 @@ if [nodebug_runto inner] then { set unk_type_re "has unknown type.*to its declared type" set ptr_math_re "Cannot perform pointer math on incomplete type \"$dat= a_var_type\", try casting to a known type, or void \\*\\." set not_mem_re "Attempt to take address of value not located in memory= \\." + set any_label_regexp "<\[^>\]+>" =20 set dataglobal_unk_re "dataglobal.*$unk_type_re" =20 @@ -183,7 +184,7 @@ if [nodebug_runto inner] then { {"dataglobal + 1" "" $dataglobal_unk_re $dataglobal_unk_re} {"&dataglobal" "" "\\($data_var_type \\*\\) $hex " " =3D = $data_var_type \\*"} {"&dataglobal + 1" "" $ptr_math_re $ptr_math_re} - {"(int *) &dataglobal + 1" "" " =3D \\(int \\*\\) $hex " "i= nt \\*"} + {"(int *) &dataglobal + 1" "" " =3D \\(int \\*\\) $hex $any_label_regex= p" "int \\*"} {"&(int) dataglobal + 1" "" $not_mem_re $not_mem_re} {"&dataglobal, &dataglobal" "" "\\($data_var_type \\*\\) $hex " " =3D $data_var_type \\*"} {"*dataglobal" "" $dataglobal_unk_re $dataglobal_unk_re} @@ -214,7 +215,14 @@ if [nodebug_runto inner] then { gdb_test "whatis $exp" $whatis gdb_test "ptype $exp" $whatis } - =20 + + # Check that pointer arithmetic works as expected. + set addr1 [get_hexadecimal_valueof "&dataglobal" "*UNKNOWN*"] + set addr2 [get_hexadecimal_valueof "(int *) &dataglobal + 1" "*UNKNOWN= *"] + set offset [expr $addr2 - $addr1] + set int_size [get_integer_valueof "sizeof (int)" "*UNKNOWN*"] + gdb_assert { $offset =3D=3D $int_size } + # The only symbol xcoff puts out for statics is for the TOC entry. # Possible, but hairy, for gdb to deal. Right now it doesn't, it # doesn't know the variables exist at all.