#ifndef tc_allow_U_suffix
#define tc_allow_U_suffix 1
#endif
+ bool u_seen = !tc_allow_U_suffix;
/* PR 19910: Look for, and ignore, a U suffix to the number. */
- if (tc_allow_U_suffix && (c == 'U' || c == 'u'))
- c = * input_line_pointer++;
+ if (!u_seen && (c == 'U' || c == 'u'))
+ {
+ c = *input_line_pointer++;
+ u_seen = true;
+ }
#ifndef tc_allow_L_suffix
#define tc_allow_L_suffix 1
#endif
/* PR 20732: Look for, and ignore, a L or LL suffix to the number. */
- if (tc_allow_L_suffix)
- while (c == 'L' || c == 'l')
+ if (tc_allow_L_suffix && (c == 'L' || c == 'l'))
+ {
c = * input_line_pointer++;
+ if (c == 'L' || c == 'l')
+ c = *input_line_pointer++;
+ if (!u_seen && (c == 'U' || c == 'u'))
+ c = *input_line_pointer++;
+ }
if (small)
{
input_line_pointer++;
goto default_case;
+ case 'l':
+ case 'L':
+ /* Accept an L suffix to the zero. */
+ if (tc_allow_L_suffix)
+ goto numeric;
+ goto default_case;
+
+ case 'u':
+ case 'U':
+ /* Accept a U suffix to the zero. */
+ if (!tc_allow_U_suffix)
+ goto default_case;
+ /* Fall through. */
case '0':
case '1':
case '2':
case '5':
case '6':
case '7':
+ numeric:
integer_constant ((flag_m68k_mri || NUMBERS_WITH_SUFFIX)
? 0 : 8,
expressionP);
--- /dev/null
+# This should match the output of gas -alm const-1.s.
+.*: Assembler messages:
+.*:5: Error: .*`l'
+.*:18: Info: .*
+.*:6: Error: .*`l'
+.*:18: Info: .*
+.*:7: Error: .*`l'
+.*:18: Info: .*
+.*:8: Error: .*`l'
+.*:18: Info: .*
+.*:5: Error: .*`u'
+.*:19: Info: .*
+.*:6: Error: .*`u'
+.*:19: Info: .*
+.*:7: Error: .*`u'
+.*:19: Info: .*
+.*:8: Error: .*`u'
+.*:19: Info: .*
+.*:5: Error: .*`l'
+.*:20: Info: .*
+.*:6: Error: .*`l'
+.*:20: Info: .*
+.*:7: Error: .*`l'
+.*:20: Info: .*
+.*:8: Error: .*`l'
+.*:20: Info: .*
+.*GAS .*/const-1\.s[ ].*
+#...
+[ ]*[0-9]*[ ]+const u
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0u
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 00u
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0x0u
+[ ]*[0-9]*[ ]+\?\?\?\? 01[ ]+> \.byte 1u
+[ ]*[0-9]*[ ]+const l
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0l
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 00l
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0x0l
+[ ]*[0-9]*[ ]+\?\?\?\? 01[ ]+> \.byte 1l
+[ ]*[0-9]*[ ]+const ul
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0ul
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 00ul
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0x0ul
+[ ]*[0-9]*[ ]+\?\?\?\? 01[ ]+> \.byte 1ul
+[ ]*[0-9]*[ ]+const lu
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0lu
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 00lu
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0x0lu
+[ ]*[0-9]*[ ]+\?\?\?\? 01[ ]+> \.byte 1lu
+[ ]*[0-9]*[ ]+const ll
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0ll
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 00ll
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0x0ll
+[ ]*[0-9]*[ ]+\?\?\?\? 01[ ]+> \.byte 1ll
+[ ]*[0-9]*[ ]+const llu
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0llu
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 00llu
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0x0llu
+[ ]*[0-9]*[ ]+\?\?\?\? 01[ ]+> \.byte 1llu
+[ ]*[0-9]*[ ]+const ull
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0ull
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 00ull
+[ ]*[0-9]*[ ]+\?\?\?\? 00[ ]+> \.byte 0x0ull
+[ ]*[0-9]*[ ]+\?\?\?\? 01[ ]+> \.byte 1ull
+#pass