/* messages.c - error reporter -
- Copyright (C) 1987-2014 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
#include "as.h"
-static void identify (char *);
+static void identify (const char *);
static void as_show_where (void);
-static void as_warn_internal (char *, unsigned int, char *);
-static void as_bad_internal (char *, unsigned int, char *);
+static void as_warn_internal (const char *, unsigned int, char *);
+static void as_bad_internal (const char *, unsigned int, char *);
/* Despite the rest of the comments in this file, (FIXME-SOON),
here is the current scheme for error messages etc:
continues as though no error occurred. */
static void
-identify (char *file)
+identify (const char *file)
{
static int identified;
if (!file)
{
unsigned int x;
- as_where (&file, &x);
+ file = as_where (&x);
}
if (file)
static void
as_show_where (void)
{
- char *file;
+ const char *file;
unsigned int line;
- as_where (&file, &line);
+ file = as_where (&line);
identify (file);
if (file)
{
/* The common portion of as_warn and as_warn_where. */
static void
-as_warn_internal (char *file, unsigned int line, char *buffer)
+as_warn_internal (const char *file, unsigned int line, char *buffer)
{
++warning_count;
if (file == NULL)
- as_where (&file, &line);
+ file = as_where (&line);
identify (file);
if (file)
{
if (line != 0)
- fprintf (stderr, "%s:%u: ", file, line);
+ fprintf (stderr, "%s:%u: %s%s\n", file, line, _("Warning: "), buffer);
else
- fprintf (stderr, "%s: ", file);
+ fprintf (stderr, "%s: %s%s\n", file, _("Warning: "), buffer);
}
- fprintf (stderr, _("Warning: "));
- fputs (buffer, stderr);
- (void) putc ('\n', stderr);
+ else
+ fprintf (stderr, "%s%s\n", _("Warning: "), buffer);
#ifndef NO_LISTING
listing_warning (buffer);
#endif
the varargs correctly and portably. */
void
-as_warn_where (char *file, unsigned int line, const char *format, ...)
+as_warn_where (const char *file, unsigned int line, const char *format, ...)
{
va_list args;
char buffer[2000];
/* The common portion of as_bad and as_bad_where. */
static void
-as_bad_internal (char *file, unsigned int line, char *buffer)
+as_bad_internal (const char *file, unsigned int line, char *buffer)
{
++error_count;
if (file == NULL)
- as_where (&file, &line);
+ file = as_where (&line);
identify (file);
if (file)
{
if (line != 0)
- fprintf (stderr, "%s:%u: ", file, line);
+ fprintf (stderr, "%s:%u: %s%s\n", file, line, _("Error: "), buffer);
else
- fprintf (stderr, "%s: ", file);
+ fprintf (stderr, "%s: %s%s\n", file, _("Error: "), buffer);
}
- fprintf (stderr, _("Error: "));
- fputs (buffer, stderr);
- (void) putc ('\n', stderr);
+ else
+ fprintf (stderr, "%s%s\n", _("Error: "), buffer);
#ifndef NO_LISTING
listing_error (buffer);
#endif
the varargs correctly and portably. */
void
-as_bad_where (char *file, unsigned int line, const char *format, ...)
+as_bad_where (const char *file, unsigned int line, const char *format, ...)
{
va_list args;
char buffer[2000];
as_show_where ();
fprintf (stderr, _("Internal error!\n"));
if (fn)
- fprintf (stderr, _("Assertion failure in %s at %s line %d.\n"),
+ fprintf (stderr, _("Assertion failure in %s at %s:%d.\n"),
fn, file, line);
else
- fprintf (stderr, _("Assertion failure at %s line %d.\n"), file, line);
+ fprintf (stderr, _("Assertion failure at %s:%d.\n"), file, line);
fprintf (stderr, _("Please report this bug.\n"));
xexit (EXIT_FAILURE);
}
{
as_show_where ();
if (fn)
- fprintf (stderr, _("Internal error, aborting at %s line %d in %s\n"),
+ fprintf (stderr, _("Internal error, aborting at %s:%d in %s\n"),
file, line, fn);
else
- fprintf (stderr, _("Internal error, aborting at %s line %d\n"),
+ fprintf (stderr, _("Internal error, aborting at %s:%d\n"),
file, line);
fprintf (stderr, _("Please report this bug.\n"));
xexit (EXIT_FAILURE);
#define HEX_MIN_THRESHOLD -(HEX_MAX_THRESHOLD)
static void
-as_internal_value_out_of_range (char * prefix,
- offsetT val,
- offsetT min,
- offsetT max,
- char * file,
- unsigned line,
- int bad)
+as_internal_value_out_of_range (const char * prefix,
+ offsetT val,
+ offsetT min,
+ offsetT max,
+ const char * file,
+ unsigned line,
+ int bad)
{
const char * err;
offsetT value,
offsetT min,
offsetT max,
- char * file,
+ const char * file,
unsigned line)
{
as_internal_value_out_of_range (prefix, value, min, max, file, line, 0);
offsetT value,
offsetT min,
offsetT max,
- char * file,
+ const char * file,
unsigned line)
{
as_internal_value_out_of_range (prefix, value, min, max, file, line, 1);