<div dir="ltr">Yeah, I'm not happy with the tests myself, but I couldn't figure out how to make them any better (FIleCheck doesn't replace %s, etc). I'm completely unfamiliar with the clang test stuff, so if anyone can suggest a way to improve these please let me know.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 8, 2014 at 10:24 PM, Justin Bogner <span dir="ltr"><<a href="mailto:mail@justinbogner.com" target="_blank">mail@justinbogner.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Dan Albert <<a href="mailto:danalbert@google.com">danalbert@google.com</a>> writes:<br>
> When building with coverage, -no-integrated-as, and -c, the driver was<br>
> emitting -cc1 -coverage-file pointing at a file in /tmp. Ensure the<br>
> coverage file is emitted in the same directory as the output file.<br>
<br>
</span>LGTM, but some tests that involve relative paths would be nice.<br>
<span class=""><br>
> <a href="http://reviews.llvm.org/D5697" target="_blank">http://reviews.llvm.org/D5697</a><br>
><br>
> Files:<br>
>   lib/Driver/Tools.cpp<br>
>   test/Driver/clang_f_opts.c<br>
><br>
</span>> Index: lib/Driver/Tools.cpp<br>
> ===================================================================<br>
> --- lib/Driver/Tools.cpp<br>
> +++ lib/Driver/Tools.cpp<br>
> @@ -3241,7 +3241,13 @@<br>
>        C.getArgs().hasArg(options::OPT_S)) {<br>
>      if (Output.isFilename()) {<br>
>        CmdArgs.push_back("-coverage-file");<br>
> -      SmallString<128> CoverageFilename(Output.getFilename());<br>
> +      SmallString<128> CoverageFilename;<br>
> +      Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o);<br>
> +      if (FinalOutput) {<br>
> +        CoverageFilename = FinalOutput->getValue();<br>
> +      } else {<br>
> +        CoverageFilename = llvm::sys::path::filename(Output.getBaseInput());<br>
> +      }<br>
>        if (llvm::sys::path::is_relative(CoverageFilename.str())) {<br>
>          SmallString<128> Pwd;<br>
>          if (!llvm::sys::fs::current_path(Pwd)) {<br>
> Index: test/Driver/clang_f_opts.c<br>
> ===================================================================<br>
> --- test/Driver/clang_f_opts.c<br>
> +++ test/Driver/clang_f_opts.c<br>
> @@ -66,6 +66,18 @@<br>
>  // CHECK-PROFILE-ARCS: "-femit-coverage-data"<br>
>  // CHECK-NO-PROFILE-ARCS-NOT: "-femit-coverage-data"<br>
><br>
> +// RUN: %clang -### -S -fprofile-arcs %s 2>&1 | FileCheck -check-prefix=CHECK-GCNO-DEFAULT-LOCATION %s<br>
> +// RUN: %clang -### -S -fprofile-arcs -no-integrated-as %s 2>&1 | FileCheck -check-prefix=CHECK-GCNO-DEFAULT-LOCATION %s<br>
> +// RUN: %clang -### -c -fprofile-arcs %s 2>&1 | FileCheck -check-prefix=CHECK-GCNO-DEFAULT-LOCATION %s<br>
> +// RUN: %clang -### -c -fprofile-arcs -no-integrated-as %s 2>&1 | FileCheck -check-prefix=CHECK-GCNO-DEFAULT-LOCATION %s<br>
> +// RUN: %clang -### -S -fprofile-arcs %s -o /foo/bar.o 2>&1 | FileCheck -check-prefix=CHECK-GCNO-LOCATION %s<br>
> +// RUN: %clang -### -S -fprofile-arcs -no-integrated-as %s -o /foo/bar.o 2>&1 | FileCheck -check-prefix=CHECK-GCNO-LOCATION %s<br>
> +// RUN: %clang -### -c -fprofile-arcs %s -o /foo/bar.o 2>&1 | FileCheck -check-prefix=CHECK-GCNO-LOCATION %s<br>
> +// RUN: %clang -### -c -fprofile-arcs -no-integrated-as %s -o /foo/bar.o 2>&1 | FileCheck -check-prefix=CHECK-GCNO-LOCATION %s<br>
> +// CHECK-GCNO-DEFAULT-LOCATION: "-coverage-file" "{{.*}}/clang_f_opts.c"<br>
> +// CHECK-GCNO-DEFAULT-LOCATION-NOT: "-coverage-file" "/tmp/{{.*}}/clang_f_opts.c"<br>
> +// CHECK-GCNO-LOCATION: "-coverage-file" "/foo/bar.o"<br>
> +<br>
>  // RUN: %clang -### -S -fvectorize %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s<br>
>  // RUN: %clang -### -S -fno-vectorize -fvectorize %s 2>&1 | FileCheck -check-prefix=CHECK-VECTORIZE %s<br>
>  // RUN: %clang -### -S -fno-vectorize %s 2>&1 | FileCheck -check-prefix=CHECK-NO-VECTORIZE %s<br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>