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