blob: 627156f153986a4cae6ffa5202a385b48fd4e82c [file] [log] [blame]
Argyrios Kyrtzidis3efd52c2011-01-14 20:54:07 +00001// Test this without pch.
2// RUN: %clang_cc1 %s -include %s -verify -fsyntax-only
3
4// Test with pch.
5// RUN: %clang_cc1 %s -emit-pch -o %t
6// RUN: %clang_cc1 %s -include-pch %t -verify -fsyntax-only
7
8#ifndef HEADER
9#define HEADER
10
11#pragma clang diagnostic push
12#pragma clang diagnostic ignored "-Wtautological-compare"
13template <typename T>
Argyrios Kyrtzidis33e15762012-10-30 00:27:21 +000014struct TS1 {
Chandler Carrutha7689ef2011-03-27 09:46:56 +000015 void m() {
16 T a = 0;
17 T b = a==a;
18 }
Argyrios Kyrtzidis3efd52c2011-01-14 20:54:07 +000019};
20#pragma clang diagnostic pop
21
22#else
23
Argyrios Kyrtzidis33e15762012-10-30 00:27:21 +000024
25template <typename T>
26struct TS2 {
27 void m() {
28 T a = 0;
29 T b = a==a; // expected-warning {{self-comparison always evaluates to true}} expected-note@39 {{in instantiation of member function}}
30 }
31};
32
Argyrios Kyrtzidis3efd52c2011-01-14 20:54:07 +000033void f() {
Argyrios Kyrtzidis33e15762012-10-30 00:27:21 +000034 TS1<int> ts1;
35 ts1.m();
36
37
38 TS2<int> ts2;
39 ts2.m();
Argyrios Kyrtzidis3efd52c2011-01-14 20:54:07 +000040}
41
42#endif