[cfe-dev] -fdiagnostics-format= design review : added enum to patch
Andrew Fish
afish at apple.com
Wed May 18 14:14:58 PDT 2011
Update patch to use an enum, per Doug's suggestion.
Andrew Fish
On May 18, 2011, at 12:38 PM, Andrew Fish wrote:
> Doug,
>
> Thanks for the help on this. Please review:
>
> -fdiagnostics-format=none/clang/msvc/vi: Changes diagnostic output format to better match IDEs and command line tools.
> This option, which defaults to "none", controls the output format of the filename, line number, and column printed in diagnostic messages.
> For example, a format string warning will produce these three renditions based on the setting of this option:
>
> t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int'
> t.c(3) : warning: conversion specifies type 'char *' but the argument has type 'int'
> t.c +3: warning: conversion specifies type 'char *' but the argument has type 'int'
>
> Here is the patch:
>
> I was unclear in CompilerInvocation.cpp if using Args.hasArg(OPT_fms_extensions) is correct.
> Also I'm not sure if my usage of "none" is correct.
>
> In TextDiagnosticPrinter.cpp I removed the suppression of DiagOpts->ShowColumn, and made the defaults for msvc turn off ShowColumn. As this seemed like a better way to do it?
>
> So with this patch we have the same defaults as before, but with more control over the diagnostic format from the command line.
> <fdiagnostics-formant.patch>
>
> Thanks,
>
> Andrew
>
>
> >~/work/Clang2/build/Release/bin/clang ve.c -S -fdiagnostics-format=vi
> ve.c +2:1: error: unknown type name 'asdkjf'
> asdkjf
> ^
> ve.c +2:9: error: expected identifier or '('
> asdkjf
> ^
> 2 errors generated.
> >~/work/Clang2/build/Release/bin/clang ve.c -S -fdiagnostics-format=msvc
> ve.c(2) : error: unknown type name 'asdkjf'
> asdkjf
> ^
> ve.c(2) : error: expected identifier or '('
> asdkjf
> ^
> 2 errors generated.
> >~/work/Clang2/build/Release/bin/clang ve.c -S -fdiagnostics-format=clang
> ve.c:2:1: error: unknown type name 'asdkjf'
> asdkjf
> ^
> ve.c:2:9: error: expected identifier or '('
> asdkjf
> ^
> 2 errors generated.
> >~/work/Clang2/build/Release/bin/clang ve.c -S
> ve.c:2:1: error: unknown type name 'asdkjf'
> asdkjf
> ^
> ve.c:2:9: error: expected identifier or '('
> asdkjf
> ^
> 2 errors generated.
> >~/work/Clang2/build/Release/bin/clang ve.c -S -ccc-host-triple x86_64-pc-win32
> ve.c(2) : error: unknown type name 'asdkjf'
> asdkjf
> ^
> ve.c(2) : error: expected identifier or '('
> asdkjf
> ^
> 2 errors generated.
> >~/work/Clang2/build/Release/bin/clang ve.c -S -ccc-host-triple x86_64-pc-win32-macho -fdiagnostics-format=clang
> ve.c:2:1: error: unknown type name 'asdkjf'
> asdkjf
> ^
> ve.c:2:9: error: expected identifier or '('
> asdkjf
> ^
> 2 errors generated.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110518/79c4c076/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fdiagnostics-formant.patch
Type: application/octet-stream
Size: 6319 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110518/79c4c076/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110518/79c4c076/attachment-0001.html>
More information about the cfe-dev
mailing list