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