1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -std=c++1y -triple i386-pc-win32 -fms-compatibility -fms-extensions -fsyntax-only -verify %s 2*0a6a1f1dSLionel Sambuc // expected-no-diagnostics 3*0a6a1f1dSLionel Sambuc foo()4*0a6a1f1dSLionel Sambucint foo() { 5*0a6a1f1dSLionel Sambuc static_assert(sizeof(__FUNCDNAME__) == 12, "?foo@@YAHXZ"); 6*0a6a1f1dSLionel Sambuc return 0; 7*0a6a1f1dSLionel Sambuc } 8*0a6a1f1dSLionel Sambuc 9*0a6a1f1dSLionel Sambuc // Within templates. 10*0a6a1f1dSLionel Sambuc template <typename T> baz()11*0a6a1f1dSLionel Sambucint baz() { 12*0a6a1f1dSLionel Sambuc static_assert(sizeof(__FUNCDNAME__) == 16, "??$baz@H@@YAHXZ"); 13*0a6a1f1dSLionel Sambuc 14*0a6a1f1dSLionel Sambuc return 0; 15*0a6a1f1dSLionel Sambuc } 16*0a6a1f1dSLionel Sambuc 17*0a6a1f1dSLionel Sambuc struct A { AA18*0a6a1f1dSLionel Sambuc A() { 19*0a6a1f1dSLionel Sambuc static_assert(sizeof(__FUNCDNAME__) == 13, "??0A@@QAE@XZ"); 20*0a6a1f1dSLionel Sambuc } ~AA21*0a6a1f1dSLionel Sambuc ~A() { 22*0a6a1f1dSLionel Sambuc static_assert(sizeof(__FUNCDNAME__) == 13, "??1A@@QAE@XZ"); 23*0a6a1f1dSLionel Sambuc } 24*0a6a1f1dSLionel Sambuc }; 25*0a6a1f1dSLionel Sambuc main()26*0a6a1f1dSLionel Sambucint main() { 27*0a6a1f1dSLionel Sambuc static_assert(sizeof(__FUNCDNAME__) == 5, "main"); 28*0a6a1f1dSLionel Sambuc 29*0a6a1f1dSLionel Sambuc baz<int>(); 30*0a6a1f1dSLionel Sambuc 31*0a6a1f1dSLionel Sambuc return 0; 32*0a6a1f1dSLionel Sambuc } 33