From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id QG5HLVBb2GJkTRcAWB0awg (envelope-from ) for ; Wed, 20 Jul 2022 15:45:20 -0400 Received: by simark.ca (Postfix, from userid 112) id B5F241E5EA; Wed, 20 Jul 2022 15:45:20 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=EOI6k8e2; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 6D5BE1E21F for ; Wed, 20 Jul 2022 15:45:20 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EC0483856DEF for ; Wed, 20 Jul 2022 19:45:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC0483856DEF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1658346320; bh=tBbtNwU/U91QhEiiJX5ftnyVSZBeEbCFjFKuu7l7os0=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=EOI6k8e2bDPdh2gre3BHi8Ddp37KkxezdeuqYQx1Cv1dkkBeuXQYqY/Oi24vGiv+Q AnHvZ7nSbcd0mDnS6OS1ECzD5ZpwvOI76tr625AMOYXA30oXOrm4LORjQ8FvwWpouG nIlhrZ5EB6xSYX00bb2oC1O9+D+svDZrBLwV3hcs= 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 745293858D28 for ; Wed, 20 Jul 2022 19:44:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 745293858D28 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-647-RR2fYh6hO9Wbuy3okSNwsQ-1; Wed, 20 Jul 2022 15:44:58 -0400 X-MC-Unique: RR2fYh6hO9Wbuy3okSNwsQ-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B698A101A58D for ; Wed, 20 Jul 2022 19:44:57 +0000 (UTC) Received: from blarsen.com (ovpn-116-8.gru2.redhat.com [10.97.116.8]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1AF7F40D282F; Wed, 20 Jul 2022 19:44:56 +0000 (UTC) To: gdb-patches@sourceware.org Subject: [PATCH v4 02/15] gdb/testsuite: Add a proc to test where compiler links the epilogue Date: Wed, 20 Jul 2022 16:44:28 -0300 Message-Id: <20220720194441.168906-4-blarsen@redhat.com> In-Reply-To: <20220720194441.168906-1-blarsen@redhat.com> References: <20220720194441.168906-1-blarsen@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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-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: , From: Bruno Larsen via Gdb-patches Reply-To: Bruno Larsen Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" 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. --- 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 aae5cb31255..6c8eb472041 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -8862,5 +8862,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.31.1