// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s // expected-no-diagnostics enum X : short { A, B }; extern decltype(+A) x; extern int x; enum Y : long { C, D }; extern decltype(+C) y; extern long y; // An enum with a fixed underlying type has an integral promotion to that type, // and to its promoted type. enum B : bool { false_, true_ }; template<bool> struct T {}; T<false_> f; T<true_> t; // FIXME: DR1407 will make this ill-formed T<+true_> q; // desired-error {{conversion from 'int' to 'bool'}} enum B2 : bool { a = false, b = true, c = false_, d = true_, // FIXME: DR1407 will make this ill-formed e = +false_ // desired-error {{conversion from 'int' to 'bool'}} }; |