Clarification for rule 9-3-3 - Printable Version +- MISRA Discussion Forums (https://forum.misra.org.uk) +-- Forum: MISRA C++ (https://forum.misra.org.uk/forumdisplay.php?fid=18) +--- Forum: MISRA C++:2008 rules (https://forum.misra.org.uk/forumdisplay.php?fid=19) +---- Forum: 6.9 Classes (C++) (https://forum.misra.org.uk/forumdisplay.php?fid=138) +---- Thread: Clarification for rule 9-3-3 (/showthread.php?tid=1327) |
Clarification for rule 9-3-3 - dg1980 - 22-03-2017 Dear MISRA team, to me the rule text sounds like an if/else instruction for a static analysis tool vendor, e.g.: Code: if (static_possible[ast_cur_sym]) Can you confirm? Thanks. Background: in the sample code below i would expect to get "[MISRA C++ 9-3-3] nfoo::cfoo::get could be made static" while some static analyzers suggest const instead. Code: namespace nfoo Re: Clarification for rule 9-3-3 - misra cpp - 10-07-2017 You are correct - if your tool says it should be const - contact your tool vendor Re: Clarification for rule 9-3-3 - dg1980 - 04-09-2017 The scope for this rule shall be clarified in the next version in such a way that it is clear whether virtual member functions are included or excluded. Our static analyzer has a different, non-MISRA related message for virtual members that could be const, because then all derived implementations would have to be const as well (which might not be possible/wanted). Thanks. Re: Clarification for rule 9-3-3 - misra cpp - 22-09-2017 We'd agree that the current position is ambiguous. This is to be considered for the next version - the likely outcome being that this applies to all functions, including virtual members. However, for virtual functions the requirement only applies if all virtual functions in an override set can be made const |