BUG in operator precedence in as
Alan Modra
alan@linuxcare.com.au
Tue Nov 28 05:26:00 GMT 2000
On Tue, 28 Nov 2000, Mikulas Patocka wrote:
> There is bug in operator precedence in as in newer binutils (2.9.5.0.46
> and 2.10.1.0.2), 2.9.1 is correct but has other bugs. '|' and '+' have the
> same precedence.
Here's a fix.
gas/ChangeLog
* expr.c (STANDARD_MUL_PRECEDENCE): Correct value.
(MRI_MUL_PRECEDENCE): Likewise.
(op_rank): Fix a comment.
Alan Modra
--
Linuxcare. Support for the Revolution.
Index: expr.c
===================================================================
RCS file: /cvs/src/src/gas/expr.c,v
retrieving revision 1.26
diff -u -p -r1.26 expr.c
--- expr.c 2000/10/30 21:59:01 1.26
+++ expr.c 2000/11/28 13:21:25
@@ -1469,7 +1469,7 @@ static operator_rankT op_rank[] = {
0, /* O_symbol */
0, /* O_symbol_rva */
0, /* O_register */
- 0, /* O_bit */
+ 0, /* O_big */
9, /* O_uminus */
9, /* O_bit_not */
9, /* O_logical_not */
@@ -1517,8 +1517,8 @@ static operator_rankT op_rank[] = {
mode. Also, MRI uses a different bit_not operator, and this fixes
that as well. */
-#define STANDARD_MUL_PRECEDENCE (7)
-#define MRI_MUL_PRECEDENCE (5)
+#define STANDARD_MUL_PRECEDENCE 8
+#define MRI_MUL_PRECEDENCE 6
void
expr_set_precedence ()
More information about the Binutils
mailing list