diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-05-16 20:04:05 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-05-16 20:04:05 +0000 |
commit | 6cda0715c3d04168222516aca3e5d6be503ced5e (patch) | |
tree | 6d704970caa5c119def4220f9e07cd1229524641 /clang | |
parent | b8684b3c82eaa44ffd3990058939c1c2a4303cdb (diff) | |
download | bcm5719-llvm-6cda0715c3d04168222516aca3e5d6be503ced5e.tar.gz bcm5719-llvm-6cda0715c3d04168222516aca3e5d6be503ced5e.zip |
Add _alignof and __builtin_alignof as aliases for __alignof in
Microsoft mode, from Will Wilson!
llvm-svn: 156940
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/Basic/TokenKinds.def | 46 | ||||
-rw-r--r-- | clang/test/Parser/MicrosoftExtensions.c | 5 |
2 files changed, 29 insertions, 22 deletions
diff --git a/clang/include/clang/Basic/TokenKinds.def b/clang/include/clang/Basic/TokenKinds.def index 2e4d34dff0b..9ea2c186939 100644 --- a/clang/include/clang/Basic/TokenKinds.def +++ b/clang/include/clang/Basic/TokenKinds.def @@ -486,28 +486,30 @@ ALIAS("__volatile" , volatile , KEYALL) ALIAS("__volatile__" , volatile , KEYALL) // Microsoft extensions which should be disabled in strict conformance mode -KEYWORD(__ptr64 , KEYMS) -KEYWORD(__ptr32 , KEYMS) -KEYWORD(__w64 , KEYMS) -KEYWORD(__uuidof , KEYMS | KEYBORLAND) -KEYWORD(__try , KEYMS | KEYBORLAND) -KEYWORD(__finally , KEYMS | KEYBORLAND) -KEYWORD(__leave , KEYMS | KEYBORLAND) -KEYWORD(__int64 , KEYMS) -KEYWORD(__if_exists , KEYMS) -KEYWORD(__if_not_exists , KEYMS) -ALIAS("__int8" , char , KEYMS) -ALIAS("__int16" , short , KEYMS) -ALIAS("__int32" , int , KEYMS) -ALIAS("_asm" , asm , KEYMS) -ALIAS("_cdecl" , __cdecl , KEYMS | KEYBORLAND) -ALIAS("_fastcall" , __fastcall , KEYMS | KEYBORLAND) -ALIAS("_stdcall" , __stdcall , KEYMS | KEYBORLAND) -ALIAS("_thiscall" , __thiscall , KEYMS) -ALIAS("_uuidof" , __uuidof , KEYMS | KEYBORLAND) -ALIAS("_inline" , inline , KEYMS) -ALIAS("_declspec" , __declspec , KEYMS) -ALIAS("__interface" , struct , KEYMS) +KEYWORD(__ptr64 , KEYMS) +KEYWORD(__ptr32 , KEYMS) +KEYWORD(__w64 , KEYMS) +KEYWORD(__uuidof , KEYMS | KEYBORLAND) +KEYWORD(__try , KEYMS | KEYBORLAND) +KEYWORD(__finally , KEYMS | KEYBORLAND) +KEYWORD(__leave , KEYMS | KEYBORLAND) +KEYWORD(__int64 , KEYMS) +KEYWORD(__if_exists , KEYMS) +KEYWORD(__if_not_exists , KEYMS) +ALIAS("__int8" , char , KEYMS) +ALIAS("__int16" , short , KEYMS) +ALIAS("__int32" , int , KEYMS) +ALIAS("_asm" , asm , KEYMS) +ALIAS("_alignof" , __alignof , KEYMS) +ALIAS("__builtin_alignof", __alignof , KEYMS) +ALIAS("_cdecl" , __cdecl , KEYMS | KEYBORLAND) +ALIAS("_fastcall" , __fastcall , KEYMS | KEYBORLAND) +ALIAS("_stdcall" , __stdcall , KEYMS | KEYBORLAND) +ALIAS("_thiscall" , __thiscall , KEYMS) +ALIAS("_uuidof" , __uuidof , KEYMS | KEYBORLAND) +ALIAS("_inline" , inline , KEYMS) +ALIAS("_declspec" , __declspec , KEYMS) +ALIAS("__interface" , struct , KEYMS) // Borland Extensions which should be disabled in strict conformance mode. ALIAS("_pascal" , __pascal , KEYBORLAND) diff --git a/clang/test/Parser/MicrosoftExtensions.c b/clang/test/Parser/MicrosoftExtensions.c index 1ef326aaf5d..6b00534d1d3 100644 --- a/clang/test/Parser/MicrosoftExtensions.c +++ b/clang/test/Parser/MicrosoftExtensions.c @@ -29,6 +29,11 @@ void __forceinline InterlockedBitTestAndSet (long *Base, long Bit) } _inline int foo99() { return 99; } +void test_ms_alignof_alias() { + unsigned int s = _alignof(int); + s = __builtin_alignof(int); +} + void *_alloca(int); void foo() { |