From: Sean Hunt Date: Thu, 19 May 2011 20:36:08 +0000 (+0000) Subject: Add a test for __underlying_type X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9858bcf499078f58ebe7dcbede928cc0fa7a203;p=clang Add a test for __underlying_type git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131670 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/SemaCXX/underlying_type.cpp b/test/SemaCXX/underlying_type.cpp new file mode 100644 index 0000000000..e05ca9d2fa --- /dev/null +++ b/test/SemaCXX/underlying_type.cpp @@ -0,0 +1,27 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s + +#include "limits.h" + +template +struct is_same_type { + static const bool value = false; +}; +template +struct is_same_type { + static const bool value = true; +}; + +__underlying_type(int) a; // expected-error {{only enumeration types}} +__underlying_type(struct b) c; // expected-error {{only enumeration types}} + +enum class f : char; +static_assert(is_same_type::value, + "f has the wrong underlying type"); + +enum g {d = INT_MIN }; +static_assert(is_same_type::value, + "g has the wrong underlying type"); + +__underlying_type(f) h; +static_assert(is_same_type::value, + "h has the wrong type");