79 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -Wall -Wunused-macros -Wunused-parameter -Wno-uninitialized -verify %s2 3struct S {4 void m1() { int b; while (b==b); } // expected-warning {{always evaluates to true}}5 6#pragma clang diagnostic push7#pragma clang diagnostic ignored "-Wtautological-compare"8 void m2() { int b; while (b==b); }9#pragma clang diagnostic pop10 11 void m3() { int b; while (b==b); } // expected-warning {{always evaluates to true}}12};13 14//------------------------------------------------------------------------------15 16#pragma clang diagnostic push17#pragma clang diagnostic ignored "-Wtautological-compare"18template <typename T>19struct TS {20 void m() { T b; while (b==b); }21};22#pragma clang diagnostic pop23 24void f() {25 TS<int> ts;26 ts.m();27}28 29//------------------------------------------------------------------------------30 31#define UNUSED_MACRO1 // expected-warning {{macro is not used}}32 33#pragma clang diagnostic push34#pragma clang diagnostic ignored "-Wunused-macros"35#define UNUSED_MACRO236#pragma clang diagnostic pop37 38//------------------------------------------------------------------------------39 40#pragma clang diagnostic push41#pragma clang diagnostic ignored "-Wreturn-type"42int g() { }43#pragma clang diagnostic pop44 45//------------------------------------------------------------------------------46 47void ww(48#pragma clang diagnostic push49#pragma clang diagnostic ignored "-Wunused-parameter"50 int x,51#pragma clang diagnostic pop52 int y) // expected-warning {{unused}}53{54}55 56//------------------------------------------------------------------------------57 58struct S2 {59 int x, y;60 S2() : 61#pragma clang diagnostic push62#pragma clang diagnostic ignored "-Wreorder"63 y(),64 x()65#pragma clang diagnostic pop66 {}67};68 69//------------------------------------------------------------------------------70 71#define MYMACRO \72 _Pragma("clang diagnostic push") \73 _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") \74 _Pragma("clang diagnostic pop")75MYMACRO76#undef MYMACRO77 78//------------------------------------------------------------------------------79