Clang Project

clang_source_code/test/SemaTemplate/temp_arg_enum_printing.cpp
1// RUN: %clang_cc1 -fsyntax-only -ast-print %s | FileCheck %s
2
3namespace NamedEnumNS
4{
5  
6enum NamedEnum
7{
8  Val0,
9  Val1
10};
11  
12template <NamedEnum E>
13void foo();
14  
15void test() {
16  // CHECK: template<> void foo<NamedEnumNS::Val0>()
17  NamedEnumNS::foo<Val0>();
18  // CHECK: template<> void foo<NamedEnumNS::Val1>()
19  NamedEnumNS::foo<(NamedEnum)1>();
20  // CHECK: template<> void foo<2>()
21  NamedEnumNS::foo<(NamedEnum)2>();
22}
23  
24} // NamedEnumNS
25