diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-30 05:16:36 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-30 05:16:36 +0000 |
commit | bc4381667a31bd5f1e677d64c789b1e959df00d5 (patch) | |
tree | a6b80dca8f72a2e7640e4d535901e42325b2a954 /gcc/gcov.c | |
parent | 1cd66bce1663eb648638d311b493de0dcc4146c3 (diff) | |
parent | 738c50b853f5ba0eaf93e23f6d29cbac761eef9e (diff) | |
download | gcc-reload-v2a.tar.gz |
Weekly merge from trunk. No regressions.reload-v2a
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/reload-v2a@181834 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcov.c')
-rw-r--r-- | gcc/gcov.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/gcc/gcov.c b/gcc/gcov.c index dffb827bdf7..29907a311e3 100644 --- a/gcc/gcov.c +++ b/gcc/gcov.c @@ -406,6 +406,11 @@ main (int argc, char **argv) /* Handle response files. */ expandargv (&argc, &argv); + a_names = 10; + names = XNEWVEC (name_map_t, a_names); + a_sources = 10; + sources = XNEWVEC (source_t, a_sources); + argno = process_args (argc, argv); if (optind == argc) print_usage (true); @@ -874,8 +879,6 @@ find_source (const char *file_name) { /* Extend the name map array -- we'll be inserting one or two entries. */ - if (!a_names) - a_names = 10; a_names *= 2; name_map = XNEWVEC (name_map_t, a_names); memcpy (name_map, names, n_names * sizeof (*names)); @@ -894,8 +897,6 @@ find_source (const char *file_name) if (n_sources == a_sources) { - if (!a_sources) - a_sources = 10; a_sources *= 2; src = XNEWVEC (source_t, a_sources); memcpy (src, sources, n_sources * sizeof (*sources)); @@ -1688,10 +1689,15 @@ canonicalize_name (const char *name) { /* '..', we can only elide it and the previous directory, if we're not a symlink. */ - struct stat buf; - + struct stat ATTRIBUTE_UNUSED buf; + *ptr = 0; - if (dd_base == ptr || stat (result, &buf) || S_ISLNK (buf.st_mode)) + if (dd_base == ptr +#if defined (S_ISLNK) + /* S_ISLNK is not POSIX.1-1996. */ + || stat (result, &buf) || S_ISLNK (buf.st_mode) +#endif + ) { /* Cannot elide, or unreadable or a symlink. */ dd_base = ptr + 2 + slash; |