xref: /minix3/external/bsd/llvm/dist/clang/test/SemaCXX/funcdname.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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 Sambuc int 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 Sambuc int 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 Sambuc int 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