[PATCH] D29724: [Driver] Report available language standards on user error

Richard Smith via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 10 13:37:27 PST 2017


rsmith added inline comments.


================
Comment at: include/clang/Basic/DiagnosticDriverKinds.td:233
   "AddressSanitizer doesn't support linking with debug runtime libraries yet">;
+def note_drv_supported_values : Note<"supported values are:">;
+def note_drv_supported_value_with_description : Note<"'%0' for standard '%1'">;
----------------
Please remove this note and instead add "use " to the start of the next note. (That is more consistent with how we add notes to other diagnostics.)


================
Comment at: lib/Frontend/CompilerInvocation.cpp:1709
+        Diags.Report(diag::note_drv_supported_value_with_description)
+          << Std.getName() << Std.getDescription();
+      }
----------------
idlecode wrote:
> ahatanak wrote:
> > Is it possible to change the diagnostic so that it's easier to tell which part is the supported value and which part is the description?
> > 
> > The diagnostic looks like this, and I found it a little hard to tell at a quick glance:
> > 
> > "c89 - ISO C 1990" 
> Sure, I have tried few formats with quotes/colons but how about this (a bit verbose) version:
> ```
> note: supported values are:
> note: 'c89' for standard 'ISO C 1990'
> note: 'c90' for standard 'ISO C 1990'
> note: 'iso9899:1990' for standard 'ISO C 1990'
> ...
> ```
> What do you think about it? Do you have any suggestions?
We should probably suppress the notes for standards that aren't applicable to the current language.


https://reviews.llvm.org/D29724





More information about the cfe-commits mailing list