// RUN: %clang_cc1 -std=c++1y -triple i386-pc-win32 -fms-compatibility -fms-extensions -fsyntax-only -verify %s | |
// expected-no-diagnostics | |
int foo() { | |
static_assert(sizeof(__FUNCDNAME__) == 12, "?foo@@YAHXZ"); | |
return 0; | |
} | |
// Within templates. | |
template <typename T> | |
int baz() { | |
static_assert(sizeof(__FUNCDNAME__) == 16, "??$baz@H@@YAHXZ"); | |
return 0; | |
} | |
struct A { | |
A() { | |
static_assert(sizeof(__FUNCDNAME__) == 13, "??0A@@QAE@XZ"); | |
} | |
~A() { | |
static_assert(sizeof(__FUNCDNAME__) == 13, "??1A@@QAE@XZ"); | |
} | |
}; | |
int main() { | |
static_assert(sizeof(__FUNCDNAME__) == 5, "main"); | |
baz<int>(); | |
return 0; | |
} |