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