[llvm] r208148 - llvm-cov: Implement --no-output
Timur Iskhodzhanov
timurrrr at google.com
Wed May 7 02:00:09 PDT 2014
I've worked around that in r208171.
Please take a look and come up with a more permanent fix.
2014-05-07 12:32 GMT+04:00 Timur Iskhodzhanov <timurrrr at google.com>:
>
> 2014-05-07 6:11 GMT+04:00 Justin Bogner <mail at justinbogner.com>:
>
> +std::string FileInfo::getCoveragePath(StringRef Filename,
>> + StringRef MainFilename) {
>> + if (Options.NoOutput)
>> + // This is probably a bug in gcov, but when -n is specified, paths
>> aren't
>> + // mangled at all, and the -l and -p options are ignored. Here, we
>> do the
>> + // same.
>> + return Filename;
>> +
>> + std::string CoveragePath;
>> + if (Options.LongFileNames && !Filename.equals(MainFilename))
>> + CoveragePath =
>> + mangleCoveragePath(MainFilename, Options.PreservePaths) + "##";
>> + CoveragePath +=
>> + mangleCoveragePath(Filename, Options.PreservePaths) + ".gcov";
>> + return CoveragePath;
>> +}
>> +
>> +std::unique_ptr<raw_ostream>
>> +FileInfo::openCoveragePath(StringRef CoveragePath) {
>> + if (Options.NoOutput)
>> + return make_unique<raw_null_ostream>();
>> +
>> + std::string ErrorInfo;
>> + auto OS = make_unique<raw_fd_ostream>(CoveragePath.str().c_str(),
>> ErrorInfo,
>> + sys::fs::F_Text);
>> + if (!ErrorInfo.empty()) {
>> + errs() << ErrorInfo << "\n";
>> + return make_unique<raw_null_ostream>();
>> + }
>> + return std::move(OS);
>> +}
>> +
>>
>
> FYI Visual Studio 2013 is not happy with that:
>
> llvm\lib\IR\GCOV.cpp(518) : error C2668: 'llvm::make_unique' : ambiguous
> call to overloaded function
> llvm\include\llvm/ADT/STLExtras.h(393): could be
> 'std::unique_ptr<llvm::raw_fd_ostream,std::default_delete<llvm::raw_fd_ostream>>
> llvm::make_unique<llvm::raw_fd_ostream,const
> _Elem*,std::string&,llvm::sys::fs::OpenFlags>(const _Elem *&&,std::string
> &,llvm::sys::fs::OpenFlags &&)'
> with
> [
> _Elem=char
> ]
> C:\Program Files (x86)\Microsoft Visual Studio
> 12.0\VC\INCLUDE\memory(1637): or
> 'std::unique_ptr<llvm::raw_fd_ostream,std::default_delete<llvm::raw_fd_ostream>>
> std::make_unique<llvm::raw_fd_ostream,const
> _Elem*,std::string&,llvm::sys::fs::OpenFlags>(const _Elem *&&,std::string
> &,llvm::sys::fs::OpenFlags &&)' [found using argument-dependent lookup]
> with
> [
> _Elem=char
> ]
> while trying to match the argument list '(const char *,
> std::string, llvm::sys::fs::OpenFlags)'
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140507/41c25465/attachment.html>
More information about the llvm-commits
mailing list