void
s_mexit (int ignore ATTRIBUTE_UNUSED)
{
- cond_exit_macro (macro_nest);
- buffer_limit = input_scrub_next_buffer (&input_line_pointer);
+ if (macro_nest)
+ {
+ cond_exit_macro (macro_nest);
+ buffer_limit = input_scrub_next_buffer (&input_line_pointer);
+ }
+ else
+ as_warn (_("ignoring macro exit outside a macro definition."));
}
/* Switch in and out of MRI mode. */
if (exp.X_op == O_constant)
{
- long repeat;
+ offsetT repeat;
repeat = exp.X_add_number;
if (mult)
char *loop;
loop = concat (S_GET_NAME (symbolP),
- " => ", S_GET_NAME (symbolP2), NULL);
+ " => ", S_GET_NAME (symbolP2), (const char *) NULL);
symp = symbolP2;
while (symp != symbolP)
{
char *old_loop = loop;
symp = symbol_get_value_expression (symp)->X_add_symbol;
- loop = concat (loop, " => ", S_GET_NAME (symp), NULL);
+ loop = concat (loop, " => ", S_GET_NAME (symp),
+ (const char *) NULL);
free (old_loop);
}
break;
case O_register:
+ if (S_IS_EXTERNAL (symbolP))
+ {
+ as_bad ("can't equate global symbol `%s' with register name",
+ S_GET_NAME (symbolP));
+ return;
+ }
S_SET_SEGMENT (symbolP, reg_section);
S_SET_VALUE (symbolP, (valueT) exp.X_add_number);
set_zero_frag (symbolP);
|| (get & hibit) == 0))
{ /* Leading bits contain both 0s & 1s. */
#if defined (BFD64) && BFD_HOST_64BIT_LONG_LONG
+#ifndef __MSVCRT__
as_warn (_("value 0x%llx truncated to 0x%llx"),
(unsigned long long) get, (unsigned long long) use);
+#else
+ as_warn (_("value 0x%I64x truncated to 0x%I64x"),
+ (unsigned long long) get, (unsigned long long) use);
+#endif
#else
as_warn (_("value 0x%lx truncated to 0x%lx"),
(unsigned long) get, (unsigned long) use);