From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 4ezSMi4662myiDgAWB0awg (envelope-from ) for ; Fri, 24 Apr 2026 05:38:54 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=gPtYvGH+; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=3TvzL3e3; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=gPtYvGH+; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=3TvzL3e3; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id CB3871E0BA; Fri, 24 Apr 2026 05:38:54 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 22B9B1E067 for ; Fri, 24 Apr 2026 05:38:54 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 963AD4BB3BAF for ; Fri, 24 Apr 2026 09:38:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 963AD4BB3BAF Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=gPtYvGH+; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=3TvzL3e3; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=gPtYvGH+; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=3TvzL3e3 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id B9F014BB3B96 for ; Fri, 24 Apr 2026 09:37:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B9F014BB3B96 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B9F014BB3B96 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777023441; cv=none; b=ZISc7TJ/5uXbxpHdAD0U2sNwDnGXUAx8bDBM0kOATULsEpycAMr6OTLMXMJOx6/PHQpXY+6bK0xRnxpkXfJcGy848vRRHqloHspW+kP7mqmQCc++I1RAIZ8ilZKGzxiDfD8TQRc6eCjDrQ6SdPMhm+LZmKeX3V824Uksf0rRfkQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777023441; c=relaxed/simple; bh=GRJbhSvqcthT8ZgyHOkhSO6J8nZebThMNnRrHYuVhwM=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature: Message-ID:Date:MIME-Version:Subject:To:From; b=caWHfmYsGArfhxD2Q5v6tE9bSyvD5rqbR0bcUhsn2ZtZ4EMs0IZNU6I5ssPzap+3QmLTskBXU9B/81A7CEQ+YUGKMI9rZ69jVjyhbjNAF/elagLaSDehBuA7UGs11LCXcE6aksJ/TOpX8Cd6VZmq7b2ymKebiEMDL5hVzFN+lBc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B9F014BB3B96 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id AF3456A8A3; Fri, 24 Apr 2026 09:37:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1777023439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Jjhf20cuqjK49KGIR8nFsAD8YdVeMQu1D86+ZY2A/YY=; b=gPtYvGH+NcLmfNdKeDMsBAjl9mpsMy77MrlPyqA7Bxn1Fa8dezInqoW9179ADCL/MKlK/X 3JnanJV0aU0ptFXKa4ROQygsQOAYscBMae0bT08nfCxAx1C8RsiqsstPGckctMxkPH5KX6 UqugKj88fLihoGO/7WUk8UgAXPP2dYI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1777023439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Jjhf20cuqjK49KGIR8nFsAD8YdVeMQu1D86+ZY2A/YY=; b=3TvzL3e312dCse7I5sAw7f51QqlILPPRuOLBrBgcdLxZVmZC4h++E4457Rbs6fO3/qgATd Xg/19j6s7HYplpDw== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=gPtYvGH+; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3TvzL3e3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1777023439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Jjhf20cuqjK49KGIR8nFsAD8YdVeMQu1D86+ZY2A/YY=; b=gPtYvGH+NcLmfNdKeDMsBAjl9mpsMy77MrlPyqA7Bxn1Fa8dezInqoW9179ADCL/MKlK/X 3JnanJV0aU0ptFXKa4ROQygsQOAYscBMae0bT08nfCxAx1C8RsiqsstPGckctMxkPH5KX6 UqugKj88fLihoGO/7WUk8UgAXPP2dYI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1777023439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Jjhf20cuqjK49KGIR8nFsAD8YdVeMQu1D86+ZY2A/YY=; b=3TvzL3e312dCse7I5sAw7f51QqlILPPRuOLBrBgcdLxZVmZC4h++E4457Rbs6fO3/qgATd Xg/19j6s7HYplpDw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 976EE593A4; Fri, 24 Apr 2026 09:37:19 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id h7FgI88562nKSwAAD6G6ig (envelope-from ); Fri, 24 Apr 2026 09:37:19 +0000 Message-ID: Date: Fri, 24 Apr 2026 11:37:19 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Call error_value_optimized_out from value_assign To: Tom Tromey , gdb-patches@sourceware.org References: <20260421194148.1724135-1-tromey@adacore.com> Content-Language: en-US From: Tom de Vries In-Reply-To: <20260421194148.1724135-1-tromey@adacore.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Result: default: False [-4.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,suse.de:email]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Action: no action X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Rspamd-Queue-Id: AF3456A8A3 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 4/21/26 9:41 PM, Tom Tromey wrote: > value_assign will throw an exception indicating that the value is > optimized out, but it seemed better to me for it to use the utility > function error_value_optimized_out. Hi Tom, LGTM. Approved-By: Tom de Vries I wondered about the NOT_AVAILABLE_ERROR, and I think we could do something similar, see unverified patch below. I'll submit it as a separate patch, after you merge this one. I'm not sure if it makes sense, but given that it touches the same code, you could also merge it into your patch. Thanks, - Tom diff --git a/gdb/valops.c b/gdb/valops.c index 515e43ccdfa..95888d3539a 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1228,8 +1228,7 @@ value_assign (struct value *toval, struct value *fromval) throw_error (OPTIMIZED_OUT_ERROR, _("value has been optimized out")); if (unavail) - throw_error (NOT_AVAILABLE_ERROR, - _("value is not available")); + error_value_not_available (); } modify_field (type, buffer, value_as_long (fromval), diff --git a/gdb/value.c b/gdb/value.c index 2d90780f57a..332b3c4bbc7 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -1127,6 +1127,12 @@ error_value_optimized_out (void) throw_error (OPTIMIZED_OUT_ERROR, _("value has been optimized out")); } +void +error_value_not_available (void) +{ + throw_error (OPTIMIZED_OUT_ERROR, _("value is not available")); +} + void value::require_not_optimized_out () const { @@ -1144,7 +1150,7 @@ void value::require_available () const { if (!m_unavailable.empty ()) - throw_error (NOT_AVAILABLE_ERROR, _("value is not available")); + error_value_not_available (); } gdb::array_view diff --git a/gdb/value.h b/gdb/value.h index 201db773a84..0267ee804e1 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -987,6 +987,10 @@ struct lval_funcs [[noreturn]] extern void error_value_optimized_out (); +/* Throw an error complaining that the value is not available. */ + +[[noreturn]] extern void error_value_not_available (); + /* Pointer to internal variable. */ #define VALUE_INTERNALVAR(val) (*((val)->deprecated_internalvar_hack ()))