/* Generic stabs parsing for gas.
Copyright 1989, 1990, 1991, 1993, 1995, 1996, 1997, 1998, 2000, 2001
- 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
02110-1301, USA. */
#include "as.h"
+#include "filenames.h"
#include "obstack.h"
#include "subsegs.h"
#include "ecoff.h"
char *dir2;
dir = remap_debug_filename (getpwd ());
- dir2 = alloca (strlen (dir) + 2);
+ dir2 = (char *) alloca (strlen (dir) + 2);
sprintf (dir2, "%s%s", dir, "/");
generate_asm_file (N_SO, dir2);
+ xfree ((char *) dir);
}
generate_asm_file (N_SO, file);
}
char sym[30];
char *buf;
char *tmp = file;
- char *endp = file + strlen (file);
+ char *file_endp = file + strlen (file);
char *bufp;
if (last_file != NULL
- && strcmp (last_file, file) == 0)
+ && filename_cmp (last_file, file) == 0)
return;
/* Rather than try to do this in some efficient fashion, we just
/* Allocate enough space for the file name (possibly extended with
doubled up backslashes), the symbol name, and the other characters
that make up a stabs file directive. */
- bufp = buf = xmalloc (2 * strlen (file) + strlen (sym) + 12);
+ bufp = buf = (char *) xmalloc (2 * strlen (file) + strlen (sym) + 12);
*bufp++ = '"';
- while (tmp < endp)
+ while (tmp < file_endp)
{
char *bslash = strchr (tmp, '\\');
size_t len = (bslash) ? (size_t) (bslash - tmp + 1) : strlen (tmp);
prev_lineno = lineno;
}
else if (lineno == prev_lineno
- && strcmp (file, prev_file) == 0)
+ && filename_cmp (file, prev_file) == 0)
{
/* Same file/line as last time. */
return;
{
/* Remember file/line for next time. */
prev_lineno = lineno;
- if (strcmp (file, prev_file) != 0)
+ if (filename_cmp (file, prev_file) != 0)
{
free (prev_file);
prev_file = xstrdup (file);
}
as_where (&file, &lineno);
- asprintf (&buf, "\"%s:F1\",%d,0,%d,%s",
- funcname, N_FUN, lineno + 1, startlabname);
+ if (asprintf (&buf, "\"%s:F1\",%d,0,%d,%s",
+ funcname, N_FUN, lineno + 1, startlabname) == -1)
+ as_fatal ("%s", xstrerror (errno));
input_line_pointer = buf;
s_stab ('s');
free (buf);
++label_count;
colon (sym);
- asprintf (&buf, "\"\",%d,0,0,%s-%s", N_FUN, sym, startlabname);
+ if (asprintf (&buf, "\"\",%d,0,0,%s-%s", N_FUN, sym, startlabname) == -1)
+ as_fatal ("%s", xstrerror (errno));
input_line_pointer = buf;
s_stab ('s');
free (buf);