// RUN: %clang_cc1 -fsyntax-only -verify %s void choice(int); int choice(bool); void test() { // Result of ! must be type bool. int i = choice(!1); } // rdar://8018252 void f0() { extern void f0_1(int*); register int x; f0_1(&x); } namespace test1 { template void bar(T &x) { T::fail(); } template void bar(volatile T &x) {} void test_ints() { volatile int x; bar(x = 5); bar(x += 5); } enum E { E_zero }; void test_enums() { volatile E x; bar(x = E_zero); bar(x += E_zero); // expected-error {{incompatible type}} } }