[PATCH] x86/Intel: avoid infinite recursion in i386_intel_simplify_symbol() (again)

Jan Beulich jbeulich@suse.com
Fri May 8 09:03:21 GMT 2026


On 08.05.2026 10:10, Jan Beulich wrote:
> --- /dev/null
> +++ b/gas/testsuite/gas/i386/intel-equ-loop.l
> @@ -0,0 +1,4 @@
> +.*: Assembler messages:
> +.*:4: Error: .*
> +.*:8: Error: .*
> +#pass

This fails for (at least) COFF/PE targets when as is passed --32. There looks
to be a separate issue there, but ...

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/intel-equ-loop.s
> @@ -0,0 +1,8 @@
> +	.intel_syntax

... "noprefix" was missing here anyway (for Intel syntax this really should
be the default), hence ...

> +
> +	a = a
> +	mov eax, [a]
> +
> +	b = c
> +	c = b
> +	mov eax, [c]

... the two MOVs fail to assemble for other reasons. This works better
(and covers another sub-aspect):

--- /dev/null
+++ b/gas/testsuite/gas/i386/intel-equ-loop.l
@@ -0,0 +1,6 @@
+.*: Assembler messages:
+.*: 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,9 @@
+	.intel_syntax noprefix
+
+	a = a
+	mov eax, [a]
+
+	b = c
+	c = b
+	mov eax, [b]
+	mov eax, [c]

Jan


More information about the Binutils mailing list