[Development] Compiler warnings

Bo Thorsen bo at vikingsoft.eu
Fri Oct 17 12:44:09 CEST 2014


Den 17-10-2014 12:22, Julien Blanc skrev:
> On 17/10/2014 10:15, Christian Kandeler wrote:
>> On 10/17/2014 08:48 AM, Kurt Pattyn wrote:
>>> As we are developing for aerospace, avionics, defence and healthcare, we are confronted on a daily basis with a lot of very stringent rules that we have to comply with (irrespective if some people might find these rules outdated, stupid, ridiculous or not). That's why we always compile with as much compiler warnings as possible. Our code must be audited by an external office anyways, so we better make sure we can avoid a bad report as soon as possible.
>>> Some examples of 'stupid' rules (which after second consideration aren't that stupid after all):
>>> - a switch statement must always have a default statement (also all cases must be handled)
>> Doesn't this actually make the code *worse* when using enums? Adding a
>> default statement when you handle all possible values will inhibit
>> genuine compiler warnings when you forget to add a case for a newly
>> added enum value. In fact, this is almost guaranteed to happen in a
>> non-trivial project, so this rule seems almost absurdly wrong to me.
> That one is always subject to debate. There is one thing not to forget
> in favor of this rule : enums are *not* guaranted to have a value
> amongst the defined ones. Undefined behaviour in that case is not an option.
>
> I wish i could have both a default statement and my compiler warning…

switch (enumValue) {
case E1: ...; break;
case E2: ...; break;

case Nope1:
case Nope2:
   // Intentionally not handled
   break;
}

Boom. Can I invoice you for this now? :)

Bo.

-- 
Viking Software
Qt and C++ developers for hire
http://www.vikingsoft.eu




More information about the Development mailing list