[cfe-dev] Explicit warning diagnostic flags for groups
    Peter N Lewis 
    peter at stairways.com.au
       
    Tue Aug 13 07:03:49 PDT 2013
    
    
  
On 13/08/2013, at 16:42 , Dmitri Gribenko <gribozavr at gmail.com> wrote:
> This change looks correct.  There are two points to consider:
> * choice of the option name.  Does GCC have a similar option?  Does
> GCC have a name for this extension in the documentation?
Very good question, to which I don't have a very good answer.  There does not appear to be a matching GCC option.
GCC describes the issues as either "5.7 Conditionals with Omitted Operands", and mentions it as "the middle operand in a conditional expression may be omitted" or "omitting the middle term of a "?:" expression".  The operator is either a "conditional expression" or a "ternary operator".  And finally clang's warning is "use of GNU ?: expression extension, eliding middle term", making no mention of conditional, ternary or omitting.
So far I chose ternary-eliding-expression and gnu-ternary-eliding-expression, matching the behaviour of static-float-init  and gnu-static-float-init, since despite it being originally a GNU extension, now it's a clang extension.
"conditional" is too vague.  ternary-omitted-operand would be fine, but then I would change the warning in clang to "use of GNU ?: expression extension, omitting middle term" to match, and I wasn't sure I wanted to do that.  I kind of prefer this one, but it's a slightly larger change, and I don't know the consequences of changing a warning message might have, though I suppose the warning will change slightly anyway with the introduction of the specific flag.  I'm not sure what clang documentation might refer to this feature - is that something to worry about as well?
> * this change needs tests.  You can model tests for this option based on this example:
> 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-static-const-float.cpp?revision=173841&view=markup
> 
> The new test file should go into the same directory as the example.
Yep, coincidently, that is *exactly* the test I based it on, although I decided it needed to be in the Sema directory instead because it's not a C++ issue.
Thanks,
   Peter.
-- 
Keyboard Maestro 6.1 now out - set web checkboxes & radio buttons, exit from loops, and more.
Keyboard Maestro <http://www.keyboardmaestro.com/> Macros for your Mac
<http://www.stairways.com/>           <http://download.keyboardmaestro.com/>
    
    
More information about the cfe-dev
mailing list