[cfe-commits] r114316 - in /cfe/trunk: include/clang/Basic/ test/Analysis/ test/Misc/ test/Parser/ test/Preprocessor/ test/Sema/ test/SemaCXX/ test/SemaObjC/

Daniel Dunbar daniel at zuster.org
Sun Sep 19 15:21:04 PDT 2010


Hi Argyrios,

I'm not sure this is the desired fix. I believe enabling
-Wunused-value by default was a conscious choice we made (based on
doing a better job than GCC of suppressing false positives, IIRC).

Personally speaking, I think experience so far indicates it is
reasonable to have it on by default.

If you agree, then I think the right resolution of the radar in
question is to have Xcode change to pass -Wno-unused-value to Clang
when the warning isn't desired.

 - Daniel

On Sun, Sep 19, 2010 at 2:21 PM, Argyrios Kyrtzidis <akyrtzi at gmail.com> wrote:
> Author: akirtzidis
> Date: Sun Sep 19 16:21:44 2010
> New Revision: 114316
>
> URL: http://llvm.org/viewvc/llvm-project?rev=114316&view=rev
> Log:
> Make -Wunused-value off by default, matching GCC. Fixes rdar://7126194.
>
> Modified:
>    cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>    cfe/trunk/test/Analysis/dead-stores.c
>    cfe/trunk/test/Analysis/misc-ps.m
>    cfe/trunk/test/Misc/caret-diags-macros.c
>    cfe/trunk/test/Parser/expressions.m
>    cfe/trunk/test/Parser/objc-messaging-1.m
>    cfe/trunk/test/Parser/objc-try-catch-1.m
>    cfe/trunk/test/Preprocessor/pragma_microsoft.c
>    cfe/trunk/test/Sema/enum.c
>    cfe/trunk/test/Sema/ext_vector_components.c
>    cfe/trunk/test/Sema/i-c-e.c
>    cfe/trunk/test/Sema/statements.c
>    cfe/trunk/test/Sema/unused-expr.c
>    cfe/trunk/test/SemaCXX/cast-conversion.cpp
>    cfe/trunk/test/SemaCXX/decl-expr-ambiguity.cpp
>    cfe/trunk/test/SemaCXX/overloaded-operator.cpp
>    cfe/trunk/test/SemaCXX/warn-unused-variables.cpp
>    cfe/trunk/test/SemaObjC/invalid-code.m
>
> Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
> +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Sun Sep 19 16:21:44 2010
> @@ -2770,16 +2770,16 @@
>   "expression is not a constant, but is accepted as one by GNU extensions">,
>   InGroup<GNU>;
>  def warn_unused_expr : Warning<"expression result unused">,
> -  InGroup<UnusedValue>;
> +  InGroup<UnusedValue>, DefaultIgnore;
>  def warn_unused_voidptr : Warning<
>   "expression result unused; should this cast be to 'void'?">,
> -  InGroup<UnusedValue>;
> +  InGroup<UnusedValue>, DefaultIgnore;
>  def warn_unused_property_expr : Warning<
>  "property access result unused - getters should not be used for side effects">,
> -  InGroup<UnusedValue>;
> +  InGroup<UnusedValue>, DefaultIgnore;
>  def warn_unused_call : Warning<
>   "ignoring return value of function declared with %0 attribute">,
> -  InGroup<UnusedValue>;
> +  InGroup<UnusedValue>, DefaultIgnore;
>
>  def err_incomplete_type_used_in_type_trait_expr : Error<
>   "incomplete type %0 used in type trait expression">;
>
> Modified: cfe/trunk/test/Analysis/dead-stores.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/dead-stores.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/dead-stores.c (original)
> +++ cfe/trunk/test/Analysis/dead-stores.c Sun Sep 19 16:21:44 2010
> @@ -300,11 +300,11 @@
>   case 7:
>     (void)(0 && x);
>     (void)y7;
> -    (void)(0 || (y8, ({ return; }), 1));  // expected-warning {{expression result unused}}
> +    (void)(0 || (y8, ({ return; }), 1));
>     (void)x;
>     break;
>   case 8:
> -    (void)(1 && (y9, ({ return; }), 1));  // expected-warning {{expression result unused}}
> +    (void)(1 && (y9, ({ return; }), 1));
>     (void)x;
>     break;
>   case 9:
>
> Modified: cfe/trunk/test/Analysis/misc-ps.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps.m?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/misc-ps.m (original)
> +++ cfe/trunk/test/Analysis/misc-ps.m Sun Sep 19 16:21:44 2010
> @@ -466,7 +466,7 @@
>  // It should not crash.
>  void test_block_cast() {
>   id test_block_cast_aux();
> -  (void (^)(void *))test_block_cast_aux(); // expected-warning{{expression result unused}}
> +  (void (^)(void *))test_block_cast_aux();
>  }
>
>  int OSAtomicCompareAndSwap32Barrier();
> @@ -673,7 +673,7 @@
>  //  when not explicitly used in an "lvalue" context (as far as the analyzer is
>  //  concerned). This previously triggered a crash due to an invalid assertion.
>  void pr_4988(void) {
> -  pr_4988; // expected-warning{{expression result unused}}
> +  pr_4988;
>  }
>
>  // <rdar://problem/7152418> - A 'signed char' is used as a flag, which is
>
> Modified: cfe/trunk/test/Misc/caret-diags-macros.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/caret-diags-macros.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Misc/caret-diags-macros.c (original)
> +++ cfe/trunk/test/Misc/caret-diags-macros.c Sun Sep 19 16:21:44 2010
> @@ -1,4 +1,4 @@
> -// RUN: %clang_cc1 -fsyntax-only %s > %t 2>&1
> +// RUN: %clang_cc1 -fsyntax-only -Wunused-value %s > %t 2>&1
>
>  #define M1(x) x
>
>
> Modified: cfe/trunk/test/Parser/expressions.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/expressions.m?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Parser/expressions.m (original)
> +++ cfe/trunk/test/Parser/expressions.m Sun Sep 19 16:21:44 2010
> @@ -1,4 +1,4 @@
> -// RUN: %clang_cc1 -fsyntax-only -verify %s
> +// RUN: %clang_cc1 -Wunused-value -fsyntax-only -verify %s
>
>  void test1() {
>   @"s";            // expected-warning {{expression result unused}}
>
> Modified: cfe/trunk/test/Parser/objc-messaging-1.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/objc-messaging-1.m?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Parser/objc-messaging-1.m (original)
> +++ cfe/trunk/test/Parser/objc-messaging-1.m Sun Sep 19 16:21:44 2010
> @@ -6,21 +6,14 @@
>         id a, b, c;
>        [a ii]; // expected-warning{{not found}}
>        [a if: 1 :2]; // expected-warning{{not found}}
> -       [a inout: 1 :2 another:(2,3,4)]; // expected-warning{{not found}} \
> -           // expected-warning 2{{expression result unused}}
> -       [a inout: 1 :2 another:(2,3,4), 6,6,8]; // expected-warning{{not found}} \
> -           // expected-warning 2{{expression result unused}}
> -       [a inout: 1 :2 another:(2,3,4), (6,4,5),6,8]; // expected-warning{{not found}} \
> -           // expected-warning 4{{expression result unused}}
> -       [a inout: 1 :2 another:(i+10), (i,j-1,5),6,8]; // expected-warning{{not found}} \
> -           // expected-warning 2{{expression result unused}}
> -       [a long: 1 :2 another:(i+10), (i,j-1,5),6,8]; // expected-warning{{not found}} \
> -           // expected-warning 2{{expression result unused}}
> -       [a : "Hello\n" :2 another:(i+10), (i,j-1,5),6,8]; // expected-warning{{not found}} \
> -           // expected-warning 2{{expression result unused}}
> +       [a inout: 1 :2 another:(2,3,4)]; // expected-warning{{not found}}
> +       [a inout: 1 :2 another:(2,3,4), 6,6,8]; // expected-warning{{not found}}
> +       [a inout: 1 :2 another:(2,3,4), (6,4,5),6,8]; // expected-warning{{not found}}
> +       [a inout: 1 :2 another:(i+10), (i,j-1,5),6,8]; // expected-warning{{not found}}
> +       [a long: 1 :2 another:(i+10), (i,j-1,5),6,8]; // expected-warning{{not found}}
> +       [a : "Hello\n" :2 another:(i+10), (i,j-1,5),6,8]; // expected-warning{{not found}}
>
>        // Comma expression as receiver (rdar://6222856)
> -       [a, b, c foo]; // expected-warning{{not found}} \
> -           // expected-warning 2{{expression result unused}}
> +       [a, b, c foo]; // expected-warning{{not found}}
>
>  }
>
> Modified: cfe/trunk/test/Parser/objc-try-catch-1.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/objc-try-catch-1.m?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Parser/objc-try-catch-1.m (original)
> +++ cfe/trunk/test/Parser/objc-try-catch-1.m Sun Sep 19 16:21:44 2010
> @@ -27,15 +27,13 @@
>       return proc();
>     }
>     @catch (Frob* ex) {
> -      @throw 1,2; // expected-error {{@throw requires an Objective-C object type ('int' invalid)}} \
> -                                 // expected-warning {{expression result unused}}
> +      @throw 1,2; // expected-error {{@throw requires an Objective-C object type ('int' invalid)}}
>     }
>     @catch (float x) {  // expected-error {{@catch parameter is not a pointer to an interface type}}
>
>     }
>     @catch(...) {
> -      @throw (4,3,proc()); // expected-warning {{expression result unused}} \
> -                                                  // expected-warning {{expression result unused}}
> +      @throw (4,3,proc());
>     }
>   }
>
> @@ -48,7 +46,7 @@
>  void bar()
>  {
>   @try {}// expected-error {{@try statement without a @catch and @finally clause}}
> -  @"s"; //  expected-warning {{result unused}}
> +  @"s";
>  }
>
>  void baz()
>
> Modified: cfe/trunk/test/Preprocessor/pragma_microsoft.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/pragma_microsoft.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Preprocessor/pragma_microsoft.c (original)
> +++ cfe/trunk/test/Preprocessor/pragma_microsoft.c Sun Sep 19 16:21:44 2010
> @@ -36,5 +36,5 @@
>
>   // If we ever actually *support* __pragma(warning(disable: x)),
>   // this warning should go away.
> -  MACRO_WITH__PRAGMA // expected-warning {{expression result unused}}
> +  MACRO_WITH__PRAGMA
>  }
>
> Modified: cfe/trunk/test/Sema/enum.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/enum.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Sema/enum.c (original)
> +++ cfe/trunk/test/Sema/enum.c Sun Sep 19 16:21:44 2010
> @@ -44,10 +44,10 @@
>     ;
>   (_Bool)ve2;  // expected-error {{arithmetic or pointer type is required}}
>
> -  for (; ;ve2) // expected-warning {{expression result unused}}
> +  for (; ;ve2)
>     ;
>   (void)ve2;
> -  ve2;         // expected-warning {{expression result unused}}
> +  ve2;
>  }
>
>  // PR2416
>
> Modified: cfe/trunk/test/Sema/ext_vector_components.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/ext_vector_components.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Sema/ext_vector_components.c (original)
> +++ cfe/trunk/test/Sema/ext_vector_components.c Sun Sep 19 16:21:44 2010
> @@ -16,7 +16,7 @@
>
>     vec2.z; // expected-error {{vector component access exceeds type 'float2'}}
>     vec2.xyzw; // expected-error {{vector component access exceeds type 'float2'}}
> -    vec4.xyzw; // expected-warning {{expression result unused}}
> +    vec4.xyzw;
>     vec4.xyzc; // expected-error {{illegal vector component name 'c'}}
>     vec4.s01z; // expected-error {{illegal vector component name 'z'}}
>     vec2 = vec4.s01; // legal, shorten
>
> Modified: cfe/trunk/test/Sema/i-c-e.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/i-c-e.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Sema/i-c-e.c (original)
> +++ cfe/trunk/test/Sema/i-c-e.c Sun Sep 19 16:21:44 2010
> @@ -50,11 +50,9 @@
>  char z[__builtin_constant_p(4) ? 1 : -1];
>
>  // Comma tests
> -int comma1[0?1,2:3];  // expected-warning {{expression result unused}}
> -int comma2[1||(1,2)]; // expected-warning {{expression result unused}} \
> -                      // expected-warning {{use of logical || with constant operand}}
> -int comma3[(1,2)]; // expected-warning {{size of static array must be an integer constant expression}} \
> -                                       // expected-warning {{expression result unused}}
> +int comma1[0?1,2:3];
> +int comma2[1||(1,2)]; // expected-warning {{use of logical || with constant operand}}
> +int comma3[(1,2)]; // expected-warning {{size of static array must be an integer constant expression}}
>
>  // Pointer + __builtin_constant_p
>  char pbcp[__builtin_constant_p(4) ? (intptr_t)&expr : 0]; // expected-error {{variable length array declaration not allowed at file scope}}
>
> Modified: cfe/trunk/test/Sema/statements.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/statements.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Sema/statements.c (original)
> +++ cfe/trunk/test/Sema/statements.c Sun Sep 19 16:21:44 2010
> @@ -1,4 +1,4 @@
> -// RUN: %clang_cc1 %s -fsyntax-only -verify
> +// RUN: %clang_cc1 %s -fsyntax-only -Wunused-value -verify
>
>  typedef unsigned __uint32_t;
>
>
> Modified: cfe/trunk/test/Sema/unused-expr.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/unused-expr.c?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/Sema/unused-expr.c (original)
> +++ cfe/trunk/test/Sema/unused-expr.c Sun Sep 19 16:21:44 2010
> @@ -1,4 +1,4 @@
> -// RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-unreachable-code
> +// RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-unreachable-code -Wunused-value
>
>  int foo(int X, int Y);
>
>
> Modified: cfe/trunk/test/SemaCXX/cast-conversion.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cast-conversion.cpp?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaCXX/cast-conversion.cpp (original)
> +++ cfe/trunk/test/SemaCXX/cast-conversion.cpp Sun Sep 19 16:21:44 2010
> @@ -15,8 +15,7 @@
>  int main () {
>   B(10);       // expected-error {{functional-style cast from 'int' to 'B' is not allowed}}
>   (B)10;       // expected-error {{C-style cast from 'int' to 'B' is not allowed}}
> -  static_cast<B>(10);  // expected-error {{static_cast from 'int' to 'B' is not allowed}} \\
> -                       // expected-warning {{expression result unused}}
> +  static_cast<B>(10);  // expected-error {{static_cast from 'int' to 'B' is not allowed}}
>  }
>
>  template<class T>
>
> Modified: cfe/trunk/test/SemaCXX/decl-expr-ambiguity.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/decl-expr-ambiguity.cpp?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaCXX/decl-expr-ambiguity.cpp (original)
> +++ cfe/trunk/test/SemaCXX/decl-expr-ambiguity.cpp Sun Sep 19 16:21:44 2010
> @@ -12,11 +12,11 @@
>   __typeof(int)(a,5)<<a; // expected-error {{excess elements in scalar initializer}}
>   void(a), ++a;
>   if (int(a)+1) {}
> -  for (int(a)+1;;) {} // expected-warning {{expression result unused}}
> +  for (int(a)+1;;) {}
>   a = sizeof(int()+1);
>   a = sizeof(int(1));
>   typeof(int()+1) a2; // expected-error {{extension used}}
> -  (int(1)); // expected-warning {{expression result unused}}
> +  (int(1));
>
>   // type-id
>   (int())1; // expected-error {{C-style cast from 'int' to 'int ()' is not allowed}}
>
> Modified: cfe/trunk/test/SemaCXX/overloaded-operator.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/overloaded-operator.cpp?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaCXX/overloaded-operator.cpp (original)
> +++ cfe/trunk/test/SemaCXX/overloaded-operator.cpp Sun Sep 19 16:21:44 2010
> @@ -157,7 +157,7 @@
>
>  void test_comma(X x, Y y) {
>   bool& b1 = (x, y);
> -  X& xr = (x, x); // expected-warning {{expression result unused}}
> +  X& xr = (x, x);
>  }
>
>  struct Callable {
>
> Modified: cfe/trunk/test/SemaCXX/warn-unused-variables.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-unused-variables.cpp?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaCXX/warn-unused-variables.cpp (original)
> +++ cfe/trunk/test/SemaCXX/warn-unused-variables.cpp Sun Sep 19 16:21:44 2010
> @@ -1,4 +1,4 @@
> -// RUN: %clang_cc1 -fsyntax-only -Wunused-variable -verify %s
> +// RUN: %clang_cc1 -fsyntax-only -Wunused-variable -Wunused-value -verify %s
>  template<typename T> void f() {
>   T t;
>   t = 17;
>
> Modified: cfe/trunk/test/SemaObjC/invalid-code.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/invalid-code.m?rev=114316&r1=114315&r2=114316&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/invalid-code.m (original)
> +++ cfe/trunk/test/SemaObjC/invalid-code.m Sun Sep 19 16:21:44 2010
> @@ -9,7 +9,7 @@
>  // This previously triggered a crash because the class has not been defined.
>  @implementation RDar7495713 (rdar_7495713_cat)  // expected-error{{cannot find interface declaration for 'RDar7495713'}}
>  - (id) rdar_7495713 {
> -  __PRETTY_FUNCTION__; // expected-warning{{expression result unused}}
> +  __PRETTY_FUNCTION__;
>  }
>  @end
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>




More information about the cfe-commits mailing list