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