From patchwork Fri May 15 13:03:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 135029 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D036A40A24AB for ; Fri, 15 May 2026 13:04:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D036A40A24AB Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=EsHYyQEz X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id 7A31340A1FA9 for ; Fri, 15 May 2026 13:03:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7A31340A1FA9 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7A31340A1FA9 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::431 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778850215; cv=none; b=PoMtJffnKaidPbRbSthV7SS9xnqlIr5QFr84pZNRTvaTD3ExB2rz/RtCi1J+8nH8IzeV/KDycHOfSP33vwzKINK5lZteuiRiXYlTeASLMHQqb0YjhHApWy6hCKGknXPTh1HQ25J5hYfPBlmuhGMBiwIzerGneh8UyEj9j7Ocx40= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778850215; c=relaxed/simple; bh=LNVjA0XMtpor1UCU8y+ZPu4T3RrEbw7eoXsa9sjBD98=; h=DKIM-Signature:Message-ID:Date:MIME-Version:From:Subject:To; b=wgAUgKth0frVa72q7NqG+Ub5Pa1ZxUFAMmtxoiu4FhPXFjuXRqpIG/hn7Vs2yhvfZDF66c7akoe9yDJv+Pae4wPvfT73bMLHNZ+5WNDrsZ0+oK0zVmTFRY3wWpodUH/9w9QzKc5y+wuIPG+fkCiJiPc4baKulkMWiHU6X9kQDBA= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=EsHYyQEz DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7A31340A1FA9 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-44ccbd3290aso7516869f8f.2 for ; Fri, 15 May 2026 06:03:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1778850214; x=1779455014; darn=sourceware.org; h=content-transfer-encoding:autocrypt:content-language:cc:to:subject :from:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=GCJ/qutZVNGhzxNpmTBNLTgCeo9zwEh5vetA5tS3RTc=; b=EsHYyQEzWiUsUIU2KDKRer7vX0+u+fp7cU/vHfVYs0p8X5GkffqAhHi9OvIt03A7lN QEKlPPPcvnkBtgcgnow+zw/Qv69J6Wydoelv5YiwJjoMk23p/kImnOfPF1O2eeLqa+f5 PV+adOxqwCR299cUa05Pd9/xEBme4IANs1XOOhFYJ0wC/y3/fKPFMyFXb9OFxOXp2m0O Pf/XyOmWaIvY1i3qEzUq23xxzFhM+QQ53haReZHVRQiWY4ItIIKqI8bY46sXkjecW64c WZ83einsTtQsCQrx6Nb9i8lOSLrWhx5OBikXGHsr/JVHBTJq5W8ia5gTzcdFGDo082h0 H91w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778850214; x=1779455014; h=content-transfer-encoding:autocrypt:content-language:cc:to:subject :from:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GCJ/qutZVNGhzxNpmTBNLTgCeo9zwEh5vetA5tS3RTc=; b=gm9jJ56xZlWAm+DX+VrDZ2LzTMZmoFihms1nZCWUnUuogKkSTjWvzoADWasypYs/vt wL5Z/v3qh2fkY2OUsOO55O/RnaIB3UkPqJ0tnw80uD4/8de+liic33LiNmVxInnyn6n/ QNOMhkoAL2VVFSj88m62CW9cEAaOBwyLVOdiRH31R/jqCKYwDp3jNKQ3PzPEn2PT8Oro qFumtiuieeyMx/nF8Xyb8T4Nqroeh28tsaRsHEOKWPa4Es4ppe2QOkp+TBM8eMTFEPc8 w4g0a4pqC7w31/WC6ix7vaVIV6gMiXUNp0Xjns0SE06OyySY8InTlVJ2Yp5+U4TFtDLG dm3w== X-Gm-Message-State: AOJu0YyowhhcFiT9/VzMpuHc7/+d1EwLiJefdD4zVvqkgSLHsADPrZiq 56gsn46LDiSBHiMC8X1vMN+iBLrJHGzlnXClj0P2rGNVKUXOHPhJqyKl2pi9sWf6cmrHbNM5PJy 5kPs= X-Gm-Gg: Acq92OG1njlGFMhKcN+rEeRl+644ar/PEfyqJu+Izma9sgxa9Blw7G2PRzwEzrgts03 d+5zDsVeQIMp4PgnMoDFE4TQ19S+fz8S4ik90pja6Az4pVNMxQp1unkgdAhPXb1dJFJC9VAtCIx iBq2nScFPhObaxJBzf/96IpYSXqn0Cv37gLIOleswfVp7QKLK3ruC0O0g+VtLWhLErf3aBiIza8 O5aST3Z7m2i+Og1s8wMpQp0Dq4OJVsZjRBz6toV4ciiiU4cFbrtuK3lh+L6wNDPjXk2ip927q/H JpIrjqJQWDwnrnyzpsdWCeqVd6kTqBeeSKB2pnD/kfo9XGJUU01487SDwXtWfiYo6SlocN2pHFr QjYbH7LUq4HLd1F2yxrAynOcdzu74KfcaRthr/jgFAjAIakQySajWmcscfctKoxEsmaSljZGIzb 36RsOt/j71L+UpDZH4J2EPNNOUEhQ5rCHgmTtHylzPMX4DnGzQM7zU2fdyZL5bJHnyvnN5saWpe zpoI1Ee1R9Qd0gL8g2UuCEmhQ== X-Received: by 2002:a05:6000:1ace:b0:45d:3cbf:bdda with SMTP id ffacd0b85a97d-45e5c58d4ccmr5480412f8f.20.1778850213798; Fri, 15 May 2026 06:03:33 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45d9ec3acf7sm14705152f8f.12.2026.05.15.06.03.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 15 May 2026 06:03:33 -0700 (PDT) Message-ID: <8ffded37-0027-4de5-9e23-37ed43dba6f8@suse.com> Date: Fri, 15 May 2026 15:03:32 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Jan Beulich Subject: [PATCH v2] x86/Intel: avoid infinite recursion in i386_intel_simplify_symbol() (again) To: Binutils Cc: Alan Modra , "H.J. Lu" Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL X-Spam-Status: No, score=-3016.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org PR gas/30308 The same problem has appeared again due to insufficient use of the "resolving" property (respective helpers originally introduced for this PR) in 22f8905d9f38 ("x86/Intel: don't modify equates' expressions"). Also put in place a testcase, so this (hopefully) won't regress again. --- v2: Restrict loop continuation further. Better and wider testcase. --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -383,6 +383,8 @@ i386_intel_simplify_register (expression static symbolS * i386_intel_simplify_symbol (symbolS *sym, bool in_equate) { + symbolS *orig = NULL; + if (symbol_resolving_p (sym)) return sym; @@ -396,7 +398,9 @@ i386_intel_simplify_symbol (symbolS *sym if (symbol_on_chain(sym, symbol_rootP, symbol_lastP)) { in_equate = true; + orig = sym; sym = symbol_clone (sym, 0); + symbol_mark_resolving (orig); } else if (in_equate) { @@ -405,6 +409,11 @@ i386_intel_simplify_symbol (symbolS *sym if (e->X_op == O_symbol && !e->X_add_number) { sym = e->X_add_symbol; + if (symbol_resolving_p (sym)) + return sym; + seg = S_GET_SEGMENT (sym); + if (seg != expr_section && seg != reg_section) + return sym; continue; } sym = make_expr_symbol (e); @@ -419,6 +428,9 @@ i386_intel_simplify_symbol (symbolS *sym S_SET_SEGMENT (sym, absolute_section); symbol_clear_resolving (sym); + if (orig) + symbol_clear_resolving (orig); + return ret ? sym : NULL; } --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -63,6 +63,7 @@ if [gas_32_check] then { run_dump_test "opcode-suffix" run_dump_test "intel" run_dump_test "intel-intel" + run_list_test "intel-equ-loop" run_dump_test "intel16" run_list_test "intelbad" "" run_dump_test "intelok" --- /dev/null +++ b/gas/testsuite/gas/i386/intel-equ-loop.l @@ -0,0 +1,8 @@ +.*: Assembler messages: +.*: Error: symbol definition loop .* +.*: Error: can't resolve .* +.*: Error: symbol definition loop .* +.*: Error: can't resolve .* +.*: Error: symbol definition loop .* +.*: Error: can't resolve .* +#pass --- /dev/null +++ b/gas/testsuite/gas/i386/intel-equ-loop.s @@ -0,0 +1,16 @@ + .intel_syntax noprefix + + a = a + mov eax, [a] + + b = c + c = b + mov eax, [b] + mov eax, [c] + + d = e + e = d + x = d + d = 1 + e = 2 + mov eax, [x]