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 <[email protected]> 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 > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
