From 02b3774347158753dd72c1bb8a29eb78a16440ab Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Wed, 9 Mar 2011 12:00:19 +0000 Subject: [PATCH] include/clang/Basic/BuiltinsX86.def: __builtin_ia32_crc32**() should be defined to take unsigned args and to return unsigned value. mingw-w64's intrin.h declares __builtin_ia32_crc32**() as external. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127329 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/BuiltinsX86.def | 8 ++++---- test/Sema/builtins-decl.c | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 test/Sema/builtins-decl.c diff --git a/include/clang/Basic/BuiltinsX86.def b/include/clang/Basic/BuiltinsX86.def index da106daf26..1584498888 100644 --- a/include/clang/Basic/BuiltinsX86.def +++ b/include/clang/Basic/BuiltinsX86.def @@ -342,10 +342,10 @@ BUILTIN(__builtin_ia32_pcmpestriz128, "iV16ciV16cic","") BUILTIN(__builtin_ia32_pcmpgtq, "V2LLiV2LLiV2LLi", "") -BUILTIN(__builtin_ia32_crc32qi, "iic", "") -BUILTIN(__builtin_ia32_crc32hi, "iis", "") -BUILTIN(__builtin_ia32_crc32si, "iii", "") -BUILTIN(__builtin_ia32_crc32di, "LLiLLiLLi", "") +BUILTIN(__builtin_ia32_crc32qi, "UiUiUc", "") +BUILTIN(__builtin_ia32_crc32hi, "UiUiUs", "") +BUILTIN(__builtin_ia32_crc32si, "UiUiUi", "") +BUILTIN(__builtin_ia32_crc32di, "ULLiULLiULLi", "") // AES BUILTIN(__builtin_ia32_aesenc128, "V2LLiV2LLiV2LLi", "") diff --git a/test/Sema/builtins-decl.c b/test/Sema/builtins-decl.c new file mode 100644 index 0000000000..19bdb840cc --- /dev/null +++ b/test/Sema/builtins-decl.c @@ -0,0 +1,8 @@ +// RUN: %clang_cc1 %s -fsyntax-only -verify -triple=i686-mingw32 +// RUN: %clang_cc1 %s -fsyntax-only -verify -triple=x86_64-mingw32 + +// mingw-w64's intrin.h has decls below. +// we should accept them. +extern unsigned int __builtin_ia32_crc32qi (unsigned int, unsigned char); +extern unsigned int __builtin_ia32_crc32hi (unsigned int, unsigned short); +extern unsigned int __builtin_ia32_crc32si (unsigned int, unsigned int); -- 2.40.0