RE: gcc 7.3 diagnostic message descriptions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sigh.  I more-or-less expected your answer(s) but I thought it was worth a try.
At least for the diagnostic produced by the compiles in my project I am seeing consistency in the contents of the 'note:' entries following 'invalid conversion' messages.
Thanks for the quick reply.

-----Original Message-----
From: Jonathan Wakely [mailto:jwakely.gcc@xxxxxxxxx] 
Sent: Thursday, 11 October, 2018 15:34
To: dgilbert.france@xxxxxxxxx
Cc: gcc-help; David Malcolm
Subject: Re: gcc 7.3 diagnostic message descriptions

On Thu, 11 Oct 2018 at 13:20, David Gilbert wrote:
>
> Hello,
>
> I have been scouring the net and the gcc documentation without success 
> to try and find a definitive description of the gcc diagnostic messages.
>
> I am working on a project in which I need to parse the gcc compiler 
> diagnostics in order to automate the correction of the source code 
> being compiled.

I assume you're aware of the -fdiagnostics-parseable-fixits and -fdiagnostics-generate-patch options?

They don't affect all diagnostics, only those where it makes sense and the compiler can reliably suggest a fix.

> For most of the diagnostics, the semantics are fairly self-evident but 
> I am left with a few questions:
>
> .         In  some cases, the 'mark' line that follows an 'invalid
> conversion' diagnostic description identifies the object that 
> generated the diagnostic with a '^' and a string of '~'s but in some 
> cases the mark line only contains a caret that identifies the closing 
> parenthesis of a function call or declaration and the column value in 
> the diagnostic also points to this location.  Why are there two behaviors?

Because in some cases the location info provided to the diagnostic is just wherever the parser stopped. In some cases there's more information.

> .         In the case described in the first question above, I have found
> that the error:/warning: diagnostic is followed by a note: diagnostic 
> that DOES identify the argument that provoked the diagnostic.  Is this 
> entirely consistent - i.e. will this 'note:' always be present?

I doubt it. Those diagnostics are not really designed to be machine readable.

> .         What I am really trying to find is a comprehensive description of
> the gcc diagnostic message syntax.  This is not in the documentation 
> and does not appear to be on the web either.  Can you point me at a source?

I don't think there is one. There is no formal "schema" for diagnostics. Any informal rules they're meant to follow almost certainly aren't followed universally by all diagnostics.





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux