From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 6C2DF3857022 for ; Mon, 12 Sep 2022 12:18:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6C2DF3857022 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-137-W0hp11RRMb6SsjPDkEMIKQ-1; Mon, 12 Sep 2022 08:17:58 -0400 X-MC-Unique: W0hp11RRMb6SsjPDkEMIKQ-1 Received: by mail-wm1-f69.google.com with SMTP id j19-20020a05600c1c1300b003ab73e4c45dso7396968wms.0 for ; Mon, 12 Sep 2022 05:17:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=7wLMcsUIxpqOm6x25gAY4TpU1lE2ALZKfbsG2hYE6jI=; b=GdyM6X7kvkflfPke4Y4h4CYlOcieWgz2UrrY+lJZs39FYonybBbf90o1qpyVz6AfCZ iNxX0mbuo3aFLxdbHN/trJteV9uypb87MUAtgtMqnVdWJWEtBCKa4Xg93nrdpDTLWaC2 QdxXP/mEJ7B8sCNe4QooZl0bCGJ5EINl4UACU7HuDSWSf5RTqrAZY0WF8kDMF+SPnfWj wmzK7G7h8L0YKzM/778DAUNZO8ajL7mGfOoa6buiJV+Ta0+VzksMAM+cCyQJATGRYDrr yq9wrEDEzV7uuyMZE9HFPtKict7xApbjvTM6G94FziV/0JxI1bcLjwAjPTBo95O3/gka Idvg== X-Gm-Message-State: ACgBeo22dfHmCEeVo1fXlTx8fXQPhFvq3DR834+AmTLQDPede9GjfUpM Zmtjcxx7MPofenb13Rfa1IIO1VMSljxiO1ut+uQdzNHxeuOXiqa9maOltweJRzbZoeATjsECEOC 4nxRHM8/4v6OLR5Yi+1sa0w== X-Received: by 2002:a5d:47ac:0:b0:22a:9d95:c3d with SMTP id 12-20020a5d47ac000000b0022a9d950c3dmr1760202wrb.35.1662985077610; Mon, 12 Sep 2022 05:17:57 -0700 (PDT) X-Google-Smtp-Source: AA6agR5tkL4qOx29lgTX1kl0/ZwEqMPO6x5tVuIib5ajxa4UrORdmX1mRKmD9qdcfYNulD9Bm4+UIQ== X-Received: by 2002:a5d:47ac:0:b0:22a:9d95:c3d with SMTP id 12-20020a5d47ac000000b0022a9d950c3dmr1760195wrb.35.1662985077388; Mon, 12 Sep 2022 05:17:57 -0700 (PDT) Received: from [10.43.2.105] (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id j5-20020a5d6185000000b0021d6924b777sm7126829wru.115.2022.09.12.05.17.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Sep 2022 05:17:57 -0700 (PDT) Message-ID: <202d6f7f-17e0-a6c5-8c30-741615f3042f@redhat.com> Date: Mon, 12 Sep 2022 14:17:56 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: Re: [PATCH v4 04/15] gdb/testsuite: change gdb.base/nodebug.exp to not fail with clang To: Andrew Burgess , gdb-patches@sourceware.org References: <20220720194441.168906-1-blarsen@redhat.com> <20220720194441.168906-6-blarsen@redhat.com> <87v8ptklhw.fsf@redhat.com> From: Bruno Larsen In-Reply-To: <87v8ptklhw.fsf@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2022 12:18:03 -0000 Thanks, pushed! Cheers, Bruno On 12/09/2022 11:08, Andrew Burgess wrote: > Bruno Larsen via Gdb-patches writes: > >> 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 >> >> gcc: >> $16 = (int *) 0x404034 >> >> clang: >> $16 = (int *) 0x404034 >> >> 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. >> >> Co-Authored-By: Andrew Burgess > This looks good. I think this patch can be merged. > > Thanks, > Andrew > > >> --- >> 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/nodebug.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 \"$data_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 "<\[^>\]+>" >> >> set dataglobal_unk_re "dataglobal.*$unk_type_re" >> >> @@ -183,7 +184,7 @@ if [nodebug_runto inner] then { >> {"dataglobal + 1" "" $dataglobal_unk_re $dataglobal_unk_re} >> {"&dataglobal" "" "\\($data_var_type \\*\\) $hex " " = $data_var_type \\*"} >> {"&dataglobal + 1" "" $ptr_math_re $ptr_math_re} >> - {"(int *) &dataglobal + 1" "" " = \\(int \\*\\) $hex " "int \\*"} >> + {"(int *) &dataglobal + 1" "" " = \\(int \\*\\) $hex $any_label_regexp" "int \\*"} >> {"&(int) dataglobal + 1" "" $not_mem_re $not_mem_re} >> {"&dataglobal, &dataglobal" "" "\\($data_var_type \\*\\) $hex " " = $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 >> } >> - >> + >> + # 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 == $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. >> -- >> 2.31.1