<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Oct 11, 2013 at 6:58 PM, Eric Levy <span dir="ltr"><<a href="mailto:contact@ericlevy.name" target="_blank">contact@ericlevy.name</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I stand corrected on the -Werror/-Wall issue.<br>
<br>
With respect to unused parameters, I do have -Wall enabled, however, the documentation states I can override it on particular types of warnings using -Wno-error=foo (this part is definitely different from gcc), however, I have been unsuccessful in doing so.<br>
</blockquote><div><br></div><div>I demonstrated that in my example:<br><br><div style="font-family:monospace">$ clang++-tot unused.cpp -Wextra -Werror -Wno-error=unused-parameter</div><div style="font-family:monospace">unused.cpp:2:17: warning: unused parameter 'i' [-Wunused-parameter]</div>
<div style="font-family:monospace">  void func(int i) {</div><div style="font-family:monospace">                ^</div><div style="font-family:monospace">1 warning generated.<br><br>demoting the unused-parameter warning back from an error to a warning, worked for me. You do need to use the exact warning name, not a warning group (eg: -Wno-error=unused or -Wno-error=all won't work).</div>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Eric Levy<div class="im"><br>
<br>
<br>
On 10/11/2013 09:49 PM, David Blaikie wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">
<br>
<br>
<br>
On Fri, Oct 11, 2013 at 6:34 PM, Eric Levy <<a href="mailto:contact@ericlevy.name" target="_blank">contact@ericlevy.name</a><br></div><div><div class="h5">
<mailto:<a href="mailto:contact@ericlevy.name" target="_blank">contact@ericlevy.name</a>><u></u>> wrote:<br>
<br>
    Hello,<br>
<br>
    I began to experiment with clang to build an existing C++ (Qt-based)<br>
    project.  I wanted to make warnings into errors in order to ensure<br>
    that the code is solid.  However, there are several issues:<br>
<br>
    1) Clang is said to be designed to have the same command-line<br>
    interface as gcc, but the options for warnings and errors are<br>
    different.  The gcc command -Wall is -Werror in clang, and so on.<br>
<br>
<br>
Actually Clang and GCC both have -Wall and -Werror and they do (roughly)<br>
the same thing in each. -Wall is the "common likely-good warnings" and<br>
-Werror is "whatever warnings are on, make them errors". The specific<br>
set of things in -Wall differs somewhat between Clang and GCC since<br>
there's no specific definition, but roughly speaking those flags do the<br>
same thing.<br>
<br>
<br>
    2) The user documentation states that specific warnings can be made<br>
    into errors or not errors by using the -Werror=foo and<br>
    -Wno-error=foo options.  However, no list of accepted values for foo<br>
    is given.<br>
<br>
<br>
This is a flaw in Clang's documentation - we basically don't document<br>
our flags, so far as I know. You guess them, or you look at the<br>
implementation, or try -Weverything (turns on all warnings) and see what<br>
warnings fire and what their flags are called (we print the flag name by<br>
default).<br>
<br>
<br>
    3) Finally, gcc/clang both warn on unused variables and parameters.<br>
    This often undesired, especially in C++ where, due to polymorphism<br>
    some implementations of a method may not need certain parameters.<br>
<br>
<br>
I don't believe Clang warns on unused parameters by default, if at all.<br>
If it does so on virtual functions that's probably a bug to be fixed.<br>
<br>
      When clang produces an error for unused parameters (-Werror<br>
    enabled), it reports the reason is -Wunused-parameter.  However,<br>
    introducing -Wno-error=unused-parameter has no effect, despite<br>
    documentation to the contrary.  The gcc-style -Wno-unused-parameter<br>
    is equally ineffective.<br>
<br>
<br>
Could you show examples of this?<br>
<br>
-Wunused-parameter isn't under -Wall, so you must've passed it<br>
explicitly I assume (or perhaps via -Wextra)?<br>
<br>
All these options seem to work quite well for me with Clang:<br>
<br>
$ clang++-tot unused.cpp -Wextra<br>
unused.cpp:2:17: warning: unused parameter 'i' [-Wunused-parameter]<br>
   void func(int i) {<br>
                 ^<br>
1 warning generated.<br>
$ clang++-tot unused.cpp -Wextra -Werror<br>
unused.cpp:2:17: error: unused parameter 'i' [-Werror,-Wunused-parameter]<br>
   void func(int i) {<br>
                 ^<br>
1 error generated.<br>
$ clang++-tot unused.cpp -Wextra -Werror -Wno-error=unused-parameter<br>
unused.cpp:2:17: warning: unused parameter 'i' [-Wunused-parameter]<br>
   void func(int i) {<br>
                 ^<br>
1 warning generated.<br>
$ clang++-tot unused.cpp -Wextra -Werror -Wno-unused-parameter<br>
$<br>
<br>
    So too is replacing unused-parameter with simply unused, which, at<br>
    least according to gcc documentation, subsumes unused variables and<br>
    parameters alike.<br>
<br>
    Whether these observations represent choice or oversight, I would<br>
    like to know how to make all warnings errors except for unused<br>
    variables and parameters.<br>
<br>
    Thank you.<br>
<br>
    Sincerely,<br>
    Eric Levy<br></div></div>
    ______________________________<u></u>___________________<br>
    cfe-users mailing list<br>
    <a href="mailto:cfe-users@cs.uiuc.edu" target="_blank">cfe-users@cs.uiuc.edu</a> <mailto:<a href="mailto:cfe-users@cs.uiuc.edu" target="_blank">cfe-users@cs.uiuc.edu</a>><br>
    <a href="http://lists.cs.uiuc.edu/__mailman/listinfo/cfe-users" target="_blank">http://lists.cs.uiuc.edu/__<u></u>mailman/listinfo/cfe-users</a><br>
    <<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-users</a>><br>
<br>
<br>
</blockquote>
</blockquote></div><br></div></div>