Author: alexfh Date: Tue Nov 20 17:08:46 2018 New Revision: 347372 URL: http://llvm.org/viewvc/llvm-project?rev=347372&view=rev Log: clang::tooling::Diagnostic: Don't store offset in the scratch space.
These offsets are useless (and even harmful in certain cases) in exported diagnostics. The test will be added to clang-tidy, since it's the main user of the clang::tooling::Diagnostic class. Modified: cfe/trunk/lib/Tooling/Core/Diagnostic.cpp Modified: cfe/trunk/lib/Tooling/Core/Diagnostic.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/Core/Diagnostic.cpp?rev=347372&r1=347371&r2=347372&view=diff ============================================================================== --- cfe/trunk/lib/Tooling/Core/Diagnostic.cpp (original) +++ cfe/trunk/lib/Tooling/Core/Diagnostic.cpp Tue Nov 20 17:08:46 2018 @@ -23,10 +23,15 @@ DiagnosticMessage::DiagnosticMessage(llv DiagnosticMessage::DiagnosticMessage(llvm::StringRef Message, const SourceManager &Sources, SourceLocation Loc) - : Message(Message) { + : Message(Message), FileOffset(0) { assert(Loc.isValid() && Loc.isFileID()); FilePath = Sources.getFilename(Loc); - FileOffset = Sources.getFileOffset(Loc); + + // Don't store offset in the scratch space. It doesn't tell anything to the + // user. Moreover, it depends on the history of macro expansions and thus + // prevents deduplication of warnings in headers. + if (!FilePath.empty()) + FileOffset = Sources.getFileOffset(Loc); } Diagnostic::Diagnostic(llvm::StringRef DiagnosticName, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits