PR23800, .eqv doesn't always defer expression evaluation
authorAlan Modra <amodra@gmail.com>
Sat, 20 Oct 2018 00:42:46 +0000 (11:12 +1030)
committerAlan Modra <amodra@gmail.com>
Sat, 20 Oct 2018 09:16:43 +0000 (19:46 +1030)
commite4c2619ad1f31cf73d275b027e8c0cf9c6e9597a
tree1b93a048c0c8e91a12c2841df06446689da1c61d
parentac85e67c053f1555def2c111962f4e68740794f9
PR23800, .eqv doesn't always defer expression evaluation

.eqv (and ==) ought not simplify expressions involving dot or other
symbols set by .eqv.  If such simplification occurs, the value of dot
will be that at the assignment rather than at the place where the
symbol is used.

PR 23800
* expr.c (expr): Don't simplify expressions involving forward_ref
symbols when mode is expr_defer.
* config/tc-spu.c (spu_cons): Parse expression using normal
expression evaluation if @ppu is not detected.
* testsuite/gas/all/eqv-dot.d,
* testsuite/gas/all/eqv-dot.s: New test.
* testsuite/gas/all/gas.exp: Run it.
gas/ChangeLog
gas/config/tc-spu.c
gas/expr.c
gas/testsuite/gas/all/eqv-dot.d [new file with mode: 0644]
gas/testsuite/gas/all/eqv-dot.s [new file with mode: 0644]
gas/testsuite/gas/all/gas.exp