public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] Also support '^=' in linker script expressions
@ 2023-07-17 15:01 Michael Matz
  0 siblings, 0 replies; only message in thread
From: Michael Matz @ 2023-07-17 15:01 UTC (permalink / raw)
  To: bfd-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c684d6c4e3cd299f7e10576eafe9e4b86521e3d0

commit c684d6c4e3cd299f7e10576eafe9e4b86521e3d0
Author: Michael Matz <matz@suse.de>
Date:   Thu Jul 13 17:58:19 2023 +0200

    Also support '^=' in linker script expressions
    
    this requires also changes in ldgram.y and ldexp.c, unlike
    accepting '^' only.  But let's do this anyway, if only for
    symmetry.

Diff:
---
 ld/ld.texi  | 4 ++--
 ld/ldexp.c  | 1 +
 ld/ldgram.y | 4 +++-
 ld/ldlex.l  | 1 +
 4 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/ld/ld.texi b/ld/ld.texi
index 406e87ecad7..75e82eda004 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -6832,7 +6832,7 @@ precedence      associativity   Operators                           Notes
 10              left            &&
 11              left            ||
 12              right           ? :
-13              right           +=  -=  *=  /=  <<=  >>=  &=  |=    (2)
+13              right           +=  -=  *=  /=  <<=  >>=  &=  |= ^= (2)
 (lowest)
 @end smallexample
 Notes:
@@ -6866,7 +6866,7 @@ height2pt&\omit&&\omit&&\omit&\cr
 &10&&left&&{\&\&}&\cr
 &11&&left&&||&\cr
 &12&&right&&?        :&\cr
-&13&&right&&\qquad +=       -=     *=     /= <<= >>= \&= |=\qquad\ddag&\cr
+&13&&right&&\qquad +=       -=     *=     /= <<= >>= \&= |= \^{}=\qquad\ddag&\cr
 &lowest&&&&&\cr
 height2pt&\omit&&\omit&&\omit&\cr}
 \hrule}
diff --git a/ld/ldexp.c b/ld/ldexp.c
index 8b9d6dcce0b..c53879534a5 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -94,6 +94,7 @@ exp_print_token (token_code_type code, int infix_p)
     { RSHIFTEQ, ">>=" },
     { ANDEQ, "&=" },
     { OREQ, "|=" },
+    { XOREQ, "^=" },
     { OROR, "||" },
     { ANDAND, "&&" },
     { EQ, "==" },
diff --git a/ld/ldgram.y b/ld/ldgram.y
index 081176ba0f1..9dbf10b2b1f 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -108,7 +108,7 @@ static int error_index;
 %type <section_phdr> phdr_opt
 %type <integer> opt_nocrossrefs
 
-%right <token> PLUSEQ MINUSEQ MULTEQ DIVEQ  '=' LSHIFTEQ RSHIFTEQ   ANDEQ OREQ
+%right <token> PLUSEQ MINUSEQ MULTEQ DIVEQ  '=' LSHIFTEQ RSHIFTEQ   ANDEQ OREQ XOREQ
 %right <token> '?' ':'
 %left <token> OROR
 %left <token>  ANDAND
@@ -747,6 +747,8 @@ assign_op:
 			{ $$ = '&'; }
 	|	OREQ
 			{ $$ = '|'; }
+	|	XOREQ
+			{ $$ = '^'; }
 
 	;
 
diff --git a/ld/ldlex.l b/ld/ldlex.l
index 9cb002452d8..435172c08c3 100644
--- a/ld/ldlex.l
+++ b/ld/ldlex.l
@@ -233,6 +233,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
 <SCRIPT,EXPRESSION,MRI,WILD>"/="	{ RTOKEN(DIVEQ); }
 <SCRIPT,EXPRESSION,MRI,WILD>"&="	{ RTOKEN(ANDEQ); }
 <SCRIPT,EXPRESSION,MRI,WILD>"|="	{ RTOKEN(OREQ); }
+<SCRIPT,EXPRESSION,MRI,WILD>"^="	{ RTOKEN(XOREQ); }
 <EXPRESSION,MRI>"&&"			{ RTOKEN(ANDAND); }
 <SCRIPT,EXPRESSION,MRI>">"		{ RTOKEN('>'); }
 <SCRIPT,EXPRESSION,MRI,INPUTLIST>","	{ RTOKEN(','); }

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-07-17 15:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-17 15:01 [binutils-gdb] Also support '^=' in linker script expressions Michael Matz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).