[cfe-dev] Need help designing a new diagnostic formatting command line option for use with x86_64-pc-win32
Andrew Fish
afish at apple.com
Wed May 18 12:33:24 PDT 2011
On May 18, 2011, at 11:24 AM, Ted Kremenek wrote:
> Hi Andrew, Doug,
>
> I'm wondering if support for Microsoft-style diagnostics should be implemented as a new DiagnosticClient (e.g., MSVCTextDiagnosticPrinter). I'm not certain what the plan was, but putting this all into TextDiagnosticPrinter seems a little gross to me. With a separate DiagnosticClient, we might not need extra bits in DiagnosticOptions.
I'm working on a patch to implement -fdiagnostic-format=xxx per Doug's suggestion, and will post the patch to mailing list for review shortly.
I implemented for msvc and vi variants, here are the changes in TextDiagnosticPrinter.cpp for TextDiagnosticPrinter::HandleDiagnostic()
if (DiagOpts->Format == 1)
// msvc parsable format
OS << PLoc.getFilename() << '(' << LineNo << ") : ";
else if (DiagOpts->Format == 2)
// vi command line format
OS << PLoc.getFilename() << " +" << LineNo << ':';
else
// clang format
OS << PLoc.getFilename() << ':' << LineNo << ':';
if (DiagOpts->ShowColumn)
if (unsigned ColNo = PLoc.getColumn())
OS << ColNo << ':';
Where the original code was:
// Emit a Visual Studio compatible line number syntax.
if (LangOpts && LangOpts->Microsoft) {
OS << PLoc.getFilename() << '(' << LineNo << ')';
OS << " : ";
} else {
OS << PLoc.getFilename() << ':' << LineNo << ':';
if (DiagOpts->ShowColumn)
if (unsigned ColNo = PLoc.getColumn())
OS << ColNo << ':';
}
Seems like a bit of overkill to implement a new DiagnosticClient for one line of code? Maybe some method for abstracting filename, line number, and column printing would be better? Then again my brain thinks in C and not C++.
Thanks,
Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110518/2c0f7240/attachment.html>
More information about the cfe-dev
mailing list