81 lines
2.1 KiB
C++
81 lines
2.1 KiB
C++
|
// RUN: %clang_cc1 -fsyntax-only -Wall -Wunused-macros -Wunused-parameter -Wno-uninitialized -verify %s
|
||
|
|
||
|
// rdar://8365684
|
||
|
struct S {
|
||
|
void m1() { int b; while (b==b); } // expected-warning {{always evaluates to true}}
|
||
|
|
||
|
#pragma clang diagnostic push
|
||
|
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||
|
void m2() { int b; while (b==b); }
|
||
|
#pragma clang diagnostic pop
|
||
|
|
||
|
void m3() { int b; while (b==b); } // expected-warning {{always evaluates to true}}
|
||
|
};
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
#pragma clang diagnostic push
|
||
|
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||
|
template <typename T>
|
||
|
struct TS {
|
||
|
void m() { T b; while (b==b); }
|
||
|
};
|
||
|
#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
|
||
|
{}
|
||
|
};
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
// rdar://8790245
|
||
|
#define MYMACRO \
|
||
|
_Pragma("clang diagnostic push") \
|
||
|
_Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") \
|
||
|
_Pragma("clang diagnostic pop")
|
||
|
MYMACRO
|
||
|
#undef MYMACRO
|
||
|
|
||
|
//------------------------------------------------------------------------------
|