1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
3
4class C {};
5bool operator == (C c1, C c2);
6
7bool operator == (C c1, int i);
8bool operator == (int i, C c2);
9
10C operator += (C c1, C c2);
11
12enum TextureType { TextureType3D  };
13
14@interface Texture
15@property  int textureType;
16@property  C c;
17@end
18
19template <typename> class Framebuffer {
20public:
21  Texture **color_attachment;  
22  Framebuffer();
23};
24
25template <typename T> Framebuffer<T>::Framebuffer() {
26  (void)(color_attachment[0].textureType == TextureType3D);
27  color_attachment[0].textureType += 1;
28  (void)(color_attachment[0].c == color_attachment[0].c);
29  (void)(color_attachment[0].c == 1);
30  (void)(1 == color_attachment[0].c);
31}
32
33void foo() {
34  Framebuffer<int>();
35}
36