// 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; }