MicrosoftExtensions.c revision 0c99ec6d229b49085ec3c364d5c6090b33438a93
1// RUN: %clang_cc1 -triple i386-mingw32 -fsyntax-only -verify -fms-extensions -x objective-c++ %s 2__stdcall int func0(); 3int __stdcall func(); 4typedef int (__cdecl *tptr)(); 5void (*__fastcall fastpfunc)(); 6extern __declspec(dllimport) void __stdcall VarR4FromDec(); 7__declspec(deprecated) __declspec(deprecated) char * __cdecl ltoa( long _Val, char * _DstBuf, int _Radix); 8__declspec(noalias) __declspec(restrict) void * __cdecl xxx( void * _Memory ); 9typedef __w64 unsigned long ULONG_PTR, *PULONG_PTR; 10void * __ptr64 PtrToPtr64(const void *p) 11{ 12 return((void * __ptr64) (unsigned __int64) (ULONG_PTR)p ); 13} 14void __forceinline InterlockedBitTestAndSet (long *Base, long Bit) 15{ 16 __asm { 17 mov eax, Bit 18 mov ecx, Base 19 lock bts [ecx], eax 20 setc al 21 }; 22} 23 24void *_alloca(int); 25 26void foo() { 27 __declspec(align(16)) int *buffer = (int *)_alloca(9); 28} 29 30typedef bool (__stdcall __stdcall *blarg)(int); 31 32 33// Charify extension. 34#define FOO(x) #@x 35char x = FOO(a); 36 37typedef enum E { e1 }; 38