// RUN: %clang_cc1 -fsyntax-only -verify %s // expected-no-diagnostics class C {}; bool operator == (C c1, C c2); bool operator == (C c1, int i); bool operator == (int i, C c2); C operator += (C c1, C c2); enum TextureType { TextureType3D }; @interface Texture @property int textureType; @property C c; @end template <typename> class Framebuffer { public: Texture **color_attachment; Framebuffer(); }; template <typename T> Framebuffer<T>::Framebuffer() { (void)(color_attachment[0].textureType == TextureType3D); color_attachment[0].textureType += 1; (void)(color_attachment[0].c == color_attachment[0].c); (void)(color_attachment[0].c == 1); (void)(1 == color_attachment[0].c); } void foo() { Framebuffer<int>(); }