2011-01-26 12:49:48 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -Wall -Wunused-macros -Wunused-parameter -Wno-uninitialized -verify %s
|
2010-12-16 02:44:22 +08:00
|
|
|
|
|
|
|
// rdar://8365684
|
|
|
|
struct S {
|
2011-03-27 17:46:56 +08:00
|
|
|
void m1() { int b; while (b==b); } // expected-warning {{always evaluates to true}}
|
2010-12-16 02:44:22 +08:00
|
|
|
|
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Wtautological-compare"
|
2011-03-27 17:46:56 +08:00
|
|
|
void m2() { int b; while (b==b); }
|
2010-12-16 02:44:22 +08:00
|
|
|
#pragma clang diagnostic pop
|
|
|
|
|
2011-03-27 17:46:56 +08:00
|
|
|
void m3() { int b; while (b==b); } // expected-warning {{always evaluates to true}}
|
2010-12-16 02:44:22 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Wtautological-compare"
|
|
|
|
template <typename T>
|
|
|
|
struct TS {
|
2011-03-27 17:46:56 +08:00
|
|
|
void m() { T b; while (b==b); }
|
2010-12-16 02:44:22 +08:00
|
|
|
};
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
|
|
|
|
void f() {
|
|
|
|
TS<int> ts;
|
|
|
|
ts.m();
|
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#define UNUSED_MACRO1 // expected-warning {{macro is not used}}
|
|
|
|
|
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Wunused-macros"
|
|
|
|
#define UNUSED_MACRO2
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Wreturn-type"
|
|
|
|
int g() { }
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
void ww(
|
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Wunused-parameter"
|
|
|
|
int x,
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
int y) // expected-warning {{unused}}
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
struct S2 {
|
|
|
|
int x, y;
|
|
|
|
S2() :
|
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Wreorder"
|
|
|
|
y(),
|
|
|
|
x()
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
2010-12-24 10:53:53 +08:00
|
|
|
|
|
|
|
// rdar://8790245
|
|
|
|
#define MYMACRO \
|
|
|
|
_Pragma("clang diagnostic push") \
|
|
|
|
_Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") \
|
|
|
|
_Pragma("clang diagnostic pop")
|
|
|
|
MYMACRO
|
|
|
|
#undef MYMACRO
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|