Author: vedantk Date: Mon Jul 18 17:32:02 2016 New Revision: 275924 URL: http://llvm.org/viewvc/llvm-project?rev=275924&view=rev Log: [Coverage] Remove '..' from filenames *after* getting an absolute path
Failure to do this breaks relative paths which begin with '..'. This issue was caught by the (still nascent) coverage bot. Modified: cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp cfe/trunk/test/CoverageMapping/abspath.cpp Modified: cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp?rev=275924&r1=275923&r2=275924&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp (original) +++ cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp Mon Jul 18 17:32:02 2016 @@ -932,8 +932,8 @@ StringRef getCoverageSection(const CodeG std::string normalizeFilename(StringRef Filename) { llvm::SmallString<256> Path(Filename); - llvm::sys::path::remove_dots(Path, /*remove_dot_dots=*/true); llvm::sys::fs::make_absolute(Path); + llvm::sys::path::remove_dots(Path, /*remove_dot_dots=*/true); return Path.str().str(); } Modified: cfe/trunk/test/CoverageMapping/abspath.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CoverageMapping/abspath.cpp?rev=275924&r1=275923&r2=275924&view=diff ============================================================================== --- cfe/trunk/test/CoverageMapping/abspath.cpp (original) +++ cfe/trunk/test/CoverageMapping/abspath.cpp Mon Jul 18 17:32:02 2016 @@ -1,7 +1,18 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -main-file-name abspath.cpp %S/Inputs/../abspath.cpp -o - | FileCheck %s +// This test requires mkdir. +// REQUIRES: shell +// +// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -main-file-name abspath.cpp %S/Inputs/../abspath.cpp -o - | FileCheck -check-prefix=RMDOTS %s -// CHECK: @__llvm_coverage_mapping = {{.*}}"\01 -// CHECK-NOT: Inputs -// CHECK: " +// RMDOTS: @__llvm_coverage_mapping = {{.*}}"\01 +// RMDOTS-NOT: Inputs +// RMDOTS: " + +// RUN: cd %T && mkdir -p test && cd test +// RUN: echo "void f1() {}" > f1.c +// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -main-file-name abspath.cpp ../test/f1.c -o - | FileCheck -check-prefix=RELPATH %s + +// RELPATH: @__llvm_coverage_mapping = {{.*}}"\01 +// RELPATH: test{{.*}}f1.c +// RELPATH: " void f1() {} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits