aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcov.c
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2011-03-25 20:20:52 +0100
committerKai Tietz <ktietz@gcc.gnu.org>2011-03-25 20:20:52 +0100
commitba78087b6c12fa4e3ab9d6b10c074624daec20ce (patch)
tree5bb0b204a88f6a48512bf569dcbe77a176e03ee7 /gcc/gcov.c
parent4489800d000d008d3bf47ffcdc85349eff1aec14 (diff)
downloadgcc-ba78087b6c12fa4e3ab9d6b10c074624daec20ce.zip
gcc-ba78087b6c12fa4e3ab9d6b10c074624daec20ce.tar.gz
gcc-ba78087b6c12fa4e3ab9d6b10c074624daec20ce.tar.bz2
Changelog c-family/
2011-03-25 Kai Tietz <ktietz@redhat.com> * c-ada-spec.c (compare_comment): Use filename_cmp instead of strcmp for filename. Changelog fortran/ 2011-03-25 Kai Tietz <ktietz@redhat.com> * scanner.c (preprocessor_line): Use filename_cmp instead of strcmp. Changelog gcc/ 2011-03-25 Kai Tietz <ktietz@redhat.com> * collect2.c (write_c_file_stat): Handle backslash as right-hand directory separator. (resolve_lib_name): Use IS_DIR_SEPARATOR instead of checking just for slash. * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH instead of checking for trailing slash. * gcc.c (record_temp_file): Use filename_cmp instead of strcmp. (do_spec_1): Likewise. (replace_outfile_spec_function): Likewise. (is_directory): Use filename_ncmp instead of strncmp. (print_multilib_info): Likewise. * gcov.c (find_source): Use filename_cmp instead instead of strcmp. (make_gcov_file_name): Fix order of slash/backslash checks. * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp. (add_standard_paths): Likewise. * mips-tfile.c (saber_stop): Handle backslash. * prefix.c (update_path): Use filename_ncmp instead of strncmp. * profile.c (output_location): Use filename_cmp instead of strcmp. * read-md.c (handle_toplevel_file): Handle backslash. * tlink.c (frob_extension): Likewise. * tree-cfg.c (same_line_p): Use filename_cmp instead of strcmp. * tree-dump.c (dequeue_and_dump): Handle backslash. * tree.c (get_file_function_name): Likewise. * gengtype.c (read_input_list): Likewise. (get_file_realbasename): Likewise. (get_output_file_with_visibility): Use filename_cmp instead of strcmp. ChangeLog java/ 2011-03-25 Kai Tietz <ktietz@redhat.com> * jcf-parse.c (java_read_sourcefilenames): Use filename_cmp instead of strcmp. (set_source_filename): Likewise. * win32-host.c (jcf_open_exact_case): Likewise. ChangeLog lto/ 2011-03-25 Kai Tietz <ktietz@redhat.com> * lto.c (lto_resolution_read): Use filename_cmp instead of strcmp. (lto_read_section_data): Likewise. ChangeLog cp/ 2011-03-25 Kai Tietz <ktietz@redhat.com> * lex.c (interface_strcmp): Handle dos-paths. (handle_pragma_implementation): Use filename_cmp instead of strcmp. (in_main_input_context): Likewise. From-SVN: r171522
Diffstat (limited to 'gcc/gcov.c')
-rw-r--r--gcc/gcov.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/gcc/gcov.c b/gcc/gcov.c
index 2fbeaf5..56fff3a 100644
--- a/gcc/gcov.c
+++ b/gcc/gcov.c
@@ -728,7 +728,7 @@ find_source (const char *file_name)
file_name = "<unknown>";
for (src = sources; src; src = src->next)
- if (!strcmp (file_name, src->name))
+ if (!filename_cmp (file_name, src->name))
break;
if (!src)
@@ -1527,7 +1527,7 @@ make_gcov_file_name (const char *input_name, const char *src_name)
if (flag_preserve_paths)
{
- /* Convert '/' and '\' to '#', remove '/./', convert '/../' to '/^/',
+ /* Convert '/' and '\' to '#', remove '/./', convert '/../' to '#^#',
convert ':' to '~' on DOS based file system. */
char *pnew = name, *pold = name;
@@ -1535,33 +1535,42 @@ make_gcov_file_name (const char *input_name, const char *src_name)
while (*pold != '\0')
{
- if (*pold == '/' || *pold == '\\')
- {
- *pnew++ = '#';
- pold++;
- }
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- else if (*pold == ':')
+ if (*pold == ':')
{
*pnew++ = '~';
pold++;
}
+ else
#endif
- else if ((*pold == '/' && strstr (pold, "/./") == pold)
- || (*pold == '\\' && strstr (pold, "\\.\\") == pold))
+ if ((*pold == '/'
+ && (strstr (pold, "/./") == pold
+ || strstr (pold, "/.\\") == pold))
+ || (*pold == '\\'
+ && (strstr (pold, "\\.\\") == pold
+ || strstr (pold, "\\./") == pold)))
pold += 3;
- else if (*pold == '/' && strstr (pold, "/../") == pold)
+ else if (*pold == '/'
+ && (strstr (pold, "/../") == pold
+ || strstr (pold, "/..\\") == pold))
{
- strcpy (pnew, "/^/");
+ strcpy (pnew, "#^#");
pnew += 3;
pold += 4;
}
- else if (*pold == '\\' && strstr (pold, "\\..\\") == pold)
+ else if (*pold == '\\'
+ && (strstr (pold, "\\..\\") == pold
+ || strstr (pold, "\\../") == pold))
{
- strcpy (pnew, "\\^\\");
+ strcpy (pnew, "#^#");
pnew += 3;
pold += 4;
}
+ else if (*pold == '/' || *pold == '\\')
+ {
+ *pnew++ = '#';
+ pold++;
+ }
else
*pnew++ = *pold++;
}