On 09/01/17 15:15, Nathan Sidwell wrote:
> On 01/09/2017 08:58 AM, David Brown wrote:
>
>> I don't know about CERT-C, but one of the challenges of implementing
>> MISRA coding standards checking in gcc is that the MISRA documents are
>> not free. They are cheap (about $10, I think), but since they are not
>> free there are likely to be copyright complications. I think it would
>> be difficult for gcc to have a warning that rejects non-zero octal
>> constants with the message "MISRA Rule 7.1: Octal constants shall not be
>> used", even though it should be fairly straightforward (and highly
>> desirable) for gcc to have a warning on the use of non-zero octal
>> constants.
>
> Well, there are the effective-c++ warnings that come from Scott Meyers'
> (non-zero-cost) books. so it must be possible to do something:
>
> @item -Weffc++ @r{(C++ and Objective-C++ only)}
> @opindex Weffc++
> @opindex Wno-effc++
> Warn about violations of the following style guidelines from Scott Meyers'
> @cite{Effective C++} series of books:
>
> nathan
>
I am not an expert in these matters (there are plenty of folks at gnu
who could give much better advice). But I think there is a difference
between explicitly using some 50+ rule numbers and titles from a
document (and that is what you want with MISRA compliance checking), and
checking for a few general good practice recommendations for C++ that
are discussed in a book.
Regardless of that sort of issue, I think on previous occasions when the
topic of MISRA (or other coding standard) checking came up, there has
been a general opinion from the gcc developers that the compiler itself
is not the best place for this sort of checking - they recommend an
external tool, and don't want the main code base cluttered with such
specific warnings for the dozens of coding standards in common use.
On the other hand, I think it makes sense to use the compiler's parsing
and analysis passes - and for the end user, integrating MISRA checking
with compilation would be very convenient. I think a plugin is the
"happy medium" here. gcc developers and users who have no interest in
MISRA will not be bothered by it, while those embedded developers who
/do/ need it would be able to use it as though it were built in to the
compiler. And I suspect that it would be easier for someone to write a
MISRA checker as a plugin than as an addition to the compiler. (I have
no experience with either plugin development or gcc development - merely
a small knowledge from what I have read.)