зеркало из https://github.com/microsoft/clang-1.git
Revert r114316, -Wunused-value enabled by default was intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114318 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
6dff2288a8
Коммит
1b2ad2fd9e
|
@ -2770,16 +2770,16 @@ def ext_typecheck_expression_not_constant_but_accepted : Extension<
|
|||
"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>, DefaultIgnore;
|
||||
InGroup<UnusedValue>;
|
||||
def warn_unused_voidptr : Warning<
|
||||
"expression result unused; should this cast be to 'void'?">,
|
||||
InGroup<UnusedValue>, DefaultIgnore;
|
||||
InGroup<UnusedValue>;
|
||||
def warn_unused_property_expr : Warning<
|
||||
"property access result unused - getters should not be used for side effects">,
|
||||
InGroup<UnusedValue>, DefaultIgnore;
|
||||
InGroup<UnusedValue>;
|
||||
def warn_unused_call : Warning<
|
||||
"ignoring return value of function declared with %0 attribute">,
|
||||
InGroup<UnusedValue>, DefaultIgnore;
|
||||
InGroup<UnusedValue>;
|
||||
|
||||
def err_incomplete_type_used_in_type_trait_expr : Error<
|
||||
"incomplete type %0 used in type trait expression">;
|
||||
|
|
|
@ -300,11 +300,11 @@ void f22() {
|
|||
case 7:
|
||||
(void)(0 && x);
|
||||
(void)y7;
|
||||
(void)(0 || (y8, ({ return; }), 1));
|
||||
(void)(0 || (y8, ({ return; }), 1)); // expected-warning {{expression result unused}}
|
||||
(void)x;
|
||||
break;
|
||||
case 8:
|
||||
(void)(1 && (y9, ({ return; }), 1));
|
||||
(void)(1 && (y9, ({ return; }), 1)); // expected-warning {{expression result unused}}
|
||||
(void)x;
|
||||
break;
|
||||
case 9:
|
||||
|
|
|
@ -466,7 +466,7 @@ unsigned char test_array_index_bitwidth(const unsigned char *p) {
|
|||
// It should not crash.
|
||||
void test_block_cast() {
|
||||
id test_block_cast_aux();
|
||||
(void (^)(void *))test_block_cast_aux();
|
||||
(void (^)(void *))test_block_cast_aux(); // expected-warning{{expression result unused}}
|
||||
}
|
||||
|
||||
int OSAtomicCompareAndSwap32Barrier();
|
||||
|
@ -673,7 +673,7 @@ CGFloat rdar7242006(CGFloat x) {
|
|||
// 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;
|
||||
pr_4988; // expected-warning{{expression result unused}}
|
||||
}
|
||||
|
||||
// <rdar://problem/7152418> - A 'signed char' is used as a flag, which is
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -Wunused-value %s > %t 2>&1
|
||||
// RUN: %clang_cc1 -fsyntax-only %s > %t 2>&1
|
||||
|
||||
#define M1(x) x
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -Wunused-value -fsyntax-only -verify %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||||
|
||||
void test1() {
|
||||
@"s"; // expected-warning {{expression result unused}}
|
||||
|
|
|
@ -6,14 +6,21 @@ int main ()
|
|||
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}}
|
||||
[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}}
|
||||
[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}}
|
||||
|
||||
// Comma expression as receiver (rdar://6222856)
|
||||
[a, b, c foo]; // expected-warning{{not found}}
|
||||
[a, b, c foo]; // expected-warning{{not found}} \
|
||||
// expected-warning 2{{expression result unused}}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,13 +27,15 @@ void * foo()
|
|||
return proc();
|
||||
}
|
||||
@catch (Frob* ex) {
|
||||
@throw 1,2; // expected-error {{@throw requires an Objective-C object type ('int' invalid)}}
|
||||
@throw 1,2; // expected-error {{@throw requires an Objective-C object type ('int' invalid)}} \
|
||||
// expected-warning {{expression result unused}}
|
||||
}
|
||||
@catch (float x) { // expected-error {{@catch parameter is not a pointer to an interface type}}
|
||||
|
||||
}
|
||||
@catch(...) {
|
||||
@throw (4,3,proc());
|
||||
@throw (4,3,proc()); // expected-warning {{expression result unused}} \
|
||||
// expected-warning {{expression result unused}}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,7 +48,7 @@ void * foo()
|
|||
void bar()
|
||||
{
|
||||
@try {}// expected-error {{@try statement without a @catch and @finally clause}}
|
||||
@"s";
|
||||
@"s"; // expected-warning {{result unused}}
|
||||
}
|
||||
|
||||
void baz()
|
||||
|
|
|
@ -36,5 +36,5 @@ void f()
|
|||
|
||||
// If we ever actually *support* __pragma(warning(disable: x)),
|
||||
// this warning should go away.
|
||||
MACRO_WITH__PRAGMA
|
||||
MACRO_WITH__PRAGMA // expected-warning {{expression result unused}}
|
||||
}
|
||||
|
|
|
@ -44,10 +44,10 @@ void test4() {
|
|||
;
|
||||
(_Bool)ve2; // expected-error {{arithmetic or pointer type is required}}
|
||||
|
||||
for (; ;ve2)
|
||||
for (; ;ve2) // expected-warning {{expression result unused}}
|
||||
;
|
||||
(void)ve2;
|
||||
ve2;
|
||||
ve2; // expected-warning {{expression result unused}}
|
||||
}
|
||||
|
||||
// PR2416
|
||||
|
|
|
@ -16,7 +16,7 @@ static void test() {
|
|||
|
||||
vec2.z; // expected-error {{vector component access exceeds type 'float2'}}
|
||||
vec2.xyzw; // expected-error {{vector component access exceeds type 'float2'}}
|
||||
vec4.xyzw;
|
||||
vec4.xyzw; // expected-warning {{expression result unused}}
|
||||
vec4.xyzc; // expected-error {{illegal vector component name 'c'}}
|
||||
vec4.s01z; // expected-error {{illegal vector component name 'z'}}
|
||||
vec2 = vec4.s01; // legal, shorten
|
||||
|
|
|
@ -50,9 +50,11 @@ char y[__builtin_constant_p(expr) ? -1 : 1];
|
|||
char z[__builtin_constant_p(4) ? 1 : -1];
|
||||
|
||||
// Comma tests
|
||||
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}}
|
||||
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}}
|
||||
|
||||
// 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}}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -fsyntax-only -Wunused-value -verify
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -verify
|
||||
|
||||
typedef unsigned __uint32_t;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-unreachable-code -Wunused-value
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-unreachable-code
|
||||
|
||||
int foo(int X, int Y);
|
||||
|
||||
|
|
|
@ -15,7 +15,8 @@ struct B {
|
|||
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}}
|
||||
static_cast<B>(10); // expected-error {{static_cast from 'int' to 'B' is not allowed}} \\
|
||||
// expected-warning {{expression result unused}}
|
||||
}
|
||||
|
||||
template<class T>
|
||||
|
|
|
@ -12,11 +12,11 @@ void f() {
|
|||
__typeof(int)(a,5)<<a; // expected-error {{excess elements in scalar initializer}}
|
||||
void(a), ++a;
|
||||
if (int(a)+1) {}
|
||||
for (int(a)+1;;) {}
|
||||
for (int(a)+1;;) {} // expected-warning {{expression result unused}}
|
||||
a = sizeof(int()+1);
|
||||
a = sizeof(int(1));
|
||||
typeof(int()+1) a2; // expected-error {{extension used}}
|
||||
(int(1));
|
||||
(int(1)); // expected-warning {{expression result unused}}
|
||||
|
||||
// type-id
|
||||
(int())1; // expected-error {{C-style cast from 'int' to 'int ()' is not allowed}}
|
||||
|
|
|
@ -157,7 +157,7 @@ bool& operator,(X, Y);
|
|||
|
||||
void test_comma(X x, Y y) {
|
||||
bool& b1 = (x, y);
|
||||
X& xr = (x, x);
|
||||
X& xr = (x, x); // expected-warning {{expression result unused}}
|
||||
}
|
||||
|
||||
struct Callable {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -Wunused-variable -Wunused-value -verify %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -Wunused-variable -verify %s
|
||||
template<typename T> void f() {
|
||||
T t;
|
||||
t = 17;
|
||||
|
|
|
@ -9,7 +9,7 @@ void test1() {
|
|||
// 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__;
|
||||
__PRETTY_FUNCTION__; // expected-warning{{expression result unused}}
|
||||
}
|
||||
@end
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче