Is -Werror=pedantic necessary?

Daniel van Vugt daniel.van.vugt at canonical.com
Fri Nov 15 04:44:24 UTC 2013


Unfortunately C99 is not a subset of C++11. They're very different 
things. So to assume your compiler needs to support both simultaneously 
is a danger to portability.

Portability to other platforms is nice-to-have for Mir. But also within 
Linux, static analysis tools (and compilers) will typically only handle 
strong enforcement of one language spec at a time.

I would prefer we kept strong enforcement of a standard, any standard, 
rather than relaxing the rules and making Mir less portable.

"Strong" doesn't guarantee compliance, like you say. But it's better 
than weak.


On 15/11/13 12:17, Christopher James Halse Rogers wrote:
> On Fri, 2013-11-15 at 09:39 +0800, Daniel van Vugt wrote:
>> I would prefer to keep pedantic mode. Issues like using C99
>> designated-initializers in C++ are actually compliance issues you should
>> be told about. It's nice to know when you're no longer using the
>> language standard you told the compiler you would use.
>
> This is what I'm asking - is it really? Especially given that using
> -pedantic does *not* guarantee you're using the language standard you
> told the compiler you would use anyway.
>
> The standard is useful to not tie you into a single compiler, but it's
> not like any sensible compiler is going to support C++11 but *not* C99,
> and our clang builds already guarantee that we're not tied into a single
> compiler.
>
>>
>> If you need to include other peoples' code which use non-compliant
>> language features then why not just:
>
> It's not that I want to use other peoples' non-compliant code. It's that
> *I* want to write non-compliant code. Or, rather, I want to write code
> that I know all non-stupid compilers are going to interpret correctly,
> but isn't strictly in the C++11 spec.
>



More information about the Mir-devel mailing list