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 75B2C3857401 for ; Wed, 14 Sep 2022 13:14:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 75B2C3857401 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-633-GBOlGL1UPDewuOGo76FAhA-1; Wed, 14 Sep 2022 09:14:46 -0400 X-MC-Unique: GBOlGL1UPDewuOGo76FAhA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id AC7DB294EDCF for ; Wed, 14 Sep 2022 13:14:45 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.40.193.113]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BD0D81121315; Wed, 14 Sep 2022 13:14:44 +0000 (UTC) From: Bruno Larsen To: gdb-patches@sourceware.org Subject: [PATCH v5 1/7] gdb/testsuite: Add a proc to test where compiler links the epilogue Date: Wed, 14 Sep 2022 15:14:21 +0200 Message-Id: <20220914131427.269689-2-blarsen@redhat.com> In-Reply-To: <20220914131427.269689-1-blarsen@redhat.com> References: <20220914131427.269689-1-blarsen@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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: Wed, 14 Sep 2022 13:14:49 -0000 Different compilers link the epilogue of functions to different lines. As an example, gcc links it to the closing brace of the function, whereas clang links it to the last statement of the function. This difference is important for the testsuite, since the where GDB will land after a step can be wildly different. Where possible, this dependency should be side-stepped in the testsuite, but it isn't always possible, so this commit adds a gdb_caching_proc that is able to detect where the epilogue is linked, so tests can react accordingly. --- Andrew OK'd this patch previously, but there was no patches that required it, so I held off on pushing it gdb/testsuite/lib/gdb.exp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 0f6bb20b49c..68536b00f14 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -8872,5 +8872,37 @@ proc gdb_step_until { regexp {test_name ""} {max_steps 10} } { } } +# Check if the compiler emits epilogue information associated +# with the closing brace or with the last statement line. +# +# This proc restarts GDB +# +# Returns True if it is associated with the closing brace, +# False if it is the last statement +gdb_caching_proc have_epilogue_line_info { + + set main { + int + main () + { + return 0; + } + } + if {![gdb_simple_compile "simple_program" $main]} { + return False + } + + clean_restart $obj + + gdb_test_multiple "info line 6" "epilogue test" { + -re -wrap ".*starts at address.*and ends at.*" { + return True + } + -re -wrap ".*" { + return False + } + } +} + # Always load compatibility stuff. load_lib future.exp -- 2.37.3