// RUN: %clang_cc1 -fsyntax-only -ast-print %s -std=c++11 | FileCheck %s // Make sure that for template value arguments that are unscoped enumerators, // no qualified enum information is included in their name, as their visibility // is global. In the case of scoped enumerators, they must include information // about their enum enclosing scope. enum E1 { e1 }; template struct tmpl_1 {}; // CHECK: template<> struct tmpl_1 tmpl_1 TMPL_1; // Name must be 'e1'. namespace nsp_1 { enum E2 { e2 }; } template struct tmpl_2 {}; // CHECK: template<> struct tmpl_2 tmpl_2 TMPL_2; // Name must be 'nsp_1::e2'. enum class E3 { e3 }; template struct tmpl_3 {}; // CHECK: template<> struct tmpl_3 tmpl_3 TMPL_3; // Name must be 'E3::e3'. namespace nsp_2 { enum class E4 { e4 }; } template struct tmpl_4 {}; // CHECK: template<> struct tmpl_4 tmpl_4 TMPL_4; // Name must be 'nsp_2::E4::e4'.