33 lines
		
	
	
		
			628 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			628 B
		
	
	
	
		
			C++
		
	
	
	
| // 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;
 | |
| }
 |