1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -fsyntax-only %s 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T, T I, int J> 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct adder { 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao enum { 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao value = I + J, 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao value2 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao }; 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint array1[adder<long, 3, 4>::value == 7? 1 : -1]; 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaonamespace PR6375 { 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao template<typename T> 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void f() { 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao enum Enum 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao { 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao enumerator1 = 0xFFFFFFF, 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao enumerator2 = enumerator1 - 1 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao }; 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int xb1 = enumerator1; 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int xe1 = enumerator2; 24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao } 25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao template void f<int>(); 27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 28651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 29651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesnamespace EnumScoping { 30651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 31651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinestemplate <typename T> 32651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesclass C { 33651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines enum { 34651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines value = 42 35651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines }; 36651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}; 37651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 38651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid f(int i, C<int>::C c) { 39651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int value; 40651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} 41651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 42651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} 43