gdb/fortran: add support for legacy .xor. operator

gfortran supports .xor. as an alias for .neqv., see:

  https://gcc.gnu.org/onlinedocs/gfortran/_002eXOR_002e-operator.html

this commit adds support for this operator to GDB.

gdb/ChangeLog:

	* f-exp.y (fortran_operators): Add ".xor.".

gdb/testsuite/ChangeLog:

	* gdb.fortran/dot-ops.exp (dot_operations): Test ".xor.".
This commit is contained in:
Andrew Burgess
2021-02-24 17:35:18 +00:00
parent bbaddd4bbe
commit 170f4b23b6
4 changed files with 17 additions and 0 deletions

@ -1,3 +1,7 @@
2021-02-25 Andrew Burgess <andrew.burgess@embecosm.com>
* f-exp.y (fortran_operators): Add ".xor.".
2021-02-24 Tom de Vries <tdevries@suse.de> 2021-02-24 Tom de Vries <tdevries@suse.de>
PR symtab/27336 PR symtab/27336

@ -982,6 +982,7 @@ static const struct token fortran_operators[] =
{ ".eq.", EQUAL, BINOP_END, false }, { ".eq.", EQUAL, BINOP_END, false },
{ ".eqv.", EQUAL, BINOP_END, false }, { ".eqv.", EQUAL, BINOP_END, false },
{ ".neqv.", NOTEQUAL, BINOP_END, false }, { ".neqv.", NOTEQUAL, BINOP_END, false },
{ ".xor.", NOTEQUAL, BINOP_END, false },
{ "==", EQUAL, BINOP_END, false }, { "==", EQUAL, BINOP_END, false },
{ ".ne.", NOTEQUAL, BINOP_END, false }, { ".ne.", NOTEQUAL, BINOP_END, false },
{ "/=", NOTEQUAL, BINOP_END, false }, { "/=", NOTEQUAL, BINOP_END, false },

@ -1,3 +1,7 @@
2021-02-25 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.fortran/dot-ops.exp (dot_operations): Test ".xor.".
2021-02-24 Andrew Burgess <andrew.burgess@embecosm.com> 2021-02-24 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/sect-cmd.exp: Update expected results. * gdb.base/sect-cmd.exp: Update expected results.

@ -31,6 +31,7 @@ proc test_dot_operations {} {
set not ".NOT." set not ".NOT."
set eqv ".EQV." set eqv ".EQV."
set neqv ".NEQV." set neqv ".NEQV."
set xor ".XOR."
set eq ".EQ." set eq ".EQ."
set ne ".NE." set ne ".NE."
set le ".LE." set le ".LE."
@ -45,6 +46,7 @@ proc test_dot_operations {} {
set not ".not." set not ".not."
set eqv ".eqv." set eqv ".eqv."
set neqv ".neqv." set neqv ".neqv."
set xor ".xor."
set eq ".eq." set eq ".eq."
set ne ".ne." set ne ".ne."
set le ".le." set le ".le."
@ -81,6 +83,12 @@ proc test_dot_operations {} {
gdb_test "p $false $neqv $true" " = .TRUE." gdb_test "p $false $neqv $true" " = .TRUE."
gdb_test "p $false $neqv $false" " = .FALSE." gdb_test "p $false $neqv $false" " = .FALSE."
# And the legacy alias for NEQV, XOR
gdb_test "p $true $xor $true" " = .FALSE."
gdb_test "p $true $xor $false" " = .TRUE."
gdb_test "p $false $xor $true" " = .TRUE."
gdb_test "p $false $xor $false" " = .FALSE."
# Arithmetic EQ # Arithmetic EQ
gdb_test "p 5 $eq 4" " = .FALSE." gdb_test "p 5 $eq 4" " = .FALSE."
gdb_test "p 4 $eq 4" " = .TRUE." gdb_test "p 4 $eq 4" " = .TRUE."