From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 365073858D1E for ; Wed, 30 Nov 2022 14:00:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 365073858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 695031FD6B; Wed, 30 Nov 2022 14:00:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1669816807; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=aWcu9PVHnwvhX7/I4pt6DJnxFIce7XK+rF9cN+rGrG4=; b=1vWWtipqkDuI9Ws96XkRsXtfK+m2S/yVPTQKTUKWtvf8uZA2Ijb+itujizUs7vKQJCPtD7 ux7aqYjqxv1jV6Ueg6wDE+nBzP0twaUHe3Nwqkv4iDJ5TTbPSeDqLRmCgmkKoX+HuTIYGA nMxKOVSotpKu1ykz0cdliAGK/aMoYAA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1669816807; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=aWcu9PVHnwvhX7/I4pt6DJnxFIce7XK+rF9cN+rGrG4=; b=B1a7YvsCXRc7FIvo/Q/pymyIbTHxk2Tx5X732RxQl253cVBPm5rlB4ubVGNbVUv+gAC4qG CyOXy6EaWn5RC1Dg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 4FFA513A70; Wed, 30 Nov 2022 14:00:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wUuBEudhh2NecAAAMHmgww (envelope-from ); Wed, 30 Nov 2022 14:00:07 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Cc: Carl Love , Ulrich Weigand Subject: [PATCH] [gdb/testsuite] Fix gdb.ada/float-bits.exp for powerpc64le Date: Wed, 30 Nov 2022 15:00:06 +0100 Message-Id: <20221130140006.25890-1-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On powerpc64le-linux, I run into: ... (gdb) print 16llf#4000921fb54442d18469898cc51701b8#^M $9 = ^M (gdb) FAIL: gdb.ada/float-bits.exp: print \ 16llf#4000921fb54442d18469898cc51701b8# ... The problem is that we're using a hex string for the 128-bit IEEE quad long double format, but the actual long double float format is: ... gdbarch_dump: long_double_format = floatformat_ibm_long_double_little^M ... Fix this by using the hex string obtained by compiling test.c: ... long double a = 5.0e+25L; ... like so: ... $ gcc -mlittle test.c -c -g ... and running gdb: ... $ gdb -q -batch test.o -ex "p /x a" $1 = 0xc1e1c000000000004544adf4b7320335 ... and likewise for -mbig: ... $ gdb -q -batch test.o -ex "p /x a" $1 = 0x4544adf4b7320335c1e1c00000000000 ... Tested on powerpc64le-linux. I excercised the case of floatformat_ibm_long_double_big by using "set endian big" in the test-case. Note that for this patch to work correctly, recent commit aaa79cd62b8 ("[gdb] Improve printing of float formats") is required. PR testsuite/29816 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29816 --- gdb/testsuite/gdb.ada/float-bits.exp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gdb/testsuite/gdb.ada/float-bits.exp b/gdb/testsuite/gdb.ada/float-bits.exp index 55a0566580c..921fe36a4bd 100644 --- a/gdb/testsuite/gdb.ada/float-bits.exp +++ b/gdb/testsuite/gdb.ada/float-bits.exp @@ -73,12 +73,40 @@ set gdb_long_double_size [float_size "16llf#0#" ] # example, IEEE quad versus i387 long doubles. Account for that in the # tests below. +# Get the used long double format. +set long_double_format "" +gdb_test_multiple "maint print architecture" "" { + -re "\r\ngdbarch_dump: long_double_format = (\[^\r\n\]*)" { + set long_double_format $expect_out(1,string) + exp_continue + } + -re -wrap "" { + pass $gdb_test_name + } +} + # Set default values for 128-bit IEEE quad long doubles. set valid_long_double "16llf#4000921fb54442d18469898cc51701b8#" set printed_long_double "3.1415926535897932384626433832795028" set invalid_long_double "" set has_invalid_long_double 0 +switch -glob $long_double_format { + floatformat_ibm_long_double_* { + set w1 c1e1c00000000000 + set w2 4544adf4b7320335 + switch $long_double_format { + floatformat_ibm_long_double_big { + set valid_long_double "16llf#$w2$w1#" + } + floatformat_ibm_long_double_little { + set valid_long_double "16llf#$w1$w2#" + } + } + set printed_long_double "50000000000000000000000000.0" + } +} + if { [istarget x86_64-*-* ] || [istarget i?86-*-*] } { # i387 long double have invalid values set has_invalid_long_double 1 base-commit: aaa79cd62b873be672e3163eb267513c97ec4399 -- 2.35.3