[llvm-commits] [compiler-rt] r153735 - /compiler-rt/trunk/lib/atomic.c

Alexander Potapenko glider at google.com
Fri Mar 30 05:43:39 PDT 2012


Apparently __uint128_t is a 32-bit-specific problem:

$ /usr/local/google/asan/asan-llvm-trunk/llvm/build/Release+Asserts/bin/clang
-Wall -Werror -O3 -fomit-frame-pointer
--sysroot=/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/SDKs/linux
-c -fPIC -o /usr/local/google/asan/asan-llvm-trunk/llvm/build/tools/clang/runtime/compiler-rt/clang_linux/full-i386/i386/SubDir.lib/atomic.o
/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c
/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:153:3:
error: implicitly declaring library function 'memcpy' with type 'void
*(void *, const void *, unsigned long)' [-Werror]
  memcpy(dest, src, size);
  ^
/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:153:3:
note: please include the header <string.h> or explicitly provide a
declaration for 'memcpy'
/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:185:7:
error: implicitly declaring library function 'memcmp' with type 'int
(const void *, const void *, unsigned long)' [-Werror]
  if (memcmp(ptr, expected, size) == 0) {
      ^
/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:185:7:
note: please include the header <string.h> or explicitly provide a
declaration for 'memcmp'
2 errors generated.

(Ok)

$ /usr/local/google/asan/asan-llvm-trunk/llvm/build/Release+Asserts/bin/clang
-Wall -Werror -O3 -fomit-frame-pointer -m32
--sysroot=/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/SDKs/linux
-c -fPIC -o /usr/local/google/asan/asan-llvm-trunk/llvm/build/tools/clang/runtime/compiler-rt/clang_linux/full-i386/i386/SubDir.lib/atomic.o
/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c

/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:149:3:
error: use of undeclared identifier '__uint128_t'
  LOCK_FREE_CASES();
...
(Bad)




On Fri, Mar 30, 2012 at 12:53 PM, Alexander Potapenko <glider at google.com> wrote:
> We're seeing several compilation failures on the ASan bot while building LLVM:
>
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:149:3:
> error: use of undeclared identifier '__uint128_t'
>  LOCK_FREE_CASES();
>  ^
>  COMPILE:   clang_linux/full-i386/i386:
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/comparedf2.c
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:137:26:
> note: expanded from macro 'LOCK_FREE_CASES'
>        LOCK_FREE_ACTION(__uint128_t);\
> ...
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:153:3:
> error: implicitly declaring library function 'memcpy' with type 'void
> *(void *, const void *, unsigned int)' [-Werror]
>  memcpy(dest, src, size);
>  ^
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:153:3:
> note: please include the header <string.h> or explicitly provide a
> declaration for 'memcpy'
> ...
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:185:7:
> error: implicitly declaring library function 'memcmp' with type 'int
> (const void *, const void *, unsigned int)' [-Werror]
>  if (memcmp(ptr, expected, size) == 0) {
>      ^
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:185:7:
> note: please include the header <string.h> or explicitly provide a
> declaration for 'memcmp'
> ...
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:247:1:
> error: unknown type name '__uint128_t'
> OPTIMISED_CASES
> ^
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:220:39:
> note: expanded from macro 'OPTIMISED_CASES'
>  OPTIMISED_CASE(16, IS_LOCK_FREE_16, __uint128_t)\
>                                      ^
> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:236:26:
> note: expanded from macro 'OPTIMISED_CASE'
> void  __atomic_store_##n(type *dest, type val, int model) {\
>                         ^
> fatal error: too many errors emitted, stopping now [-ferror-limit=]



-- 
Alexander Potapenko
Software Engineer
Google Moscow




More information about the llvm-commits mailing list