| // RUN: %clang_cc1 -fsyntax-only -Wall -Wunused-macros -Wunused-parameter -verify %s |
| |
| // rdar://8365684 |
| struct S { |
| void m1() { int b = b==b; } // expected-warning {{always evaluates to true}} |
| |
| #pragma clang diagnostic push |
| #pragma clang diagnostic ignored "-Wtautological-compare" |
| void m2() { int b = b==b; } |
| #pragma clang diagnostic pop |
| |
| void m3() { int b = 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 = 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 |
| |
| //------------------------------------------------------------------------------ |