From a2cd50a9d251517549083451d0ef4cc3b341cca3 Mon Sep 17 00:00:00 2001 From: huchang Date: Mon, 27 Mar 2023 17:21:46 +0800 Subject: [PATCH] add some c files that clang failed to compile : Clang Compile Glibc Project --- clang/test/Glibc/test_asm.c | 14 ++++++++++++++ clang/test/Glibc/test_float128.c | 8 ++++++++ clang/test/Glibc/test_symbol.c | 11 +++++++++++ 3 files changed, 33 insertions(+) create mode 100644 clang/test/Glibc/test_asm.c create mode 100644 clang/test/Glibc/test_float128.c create mode 100644 clang/test/Glibc/test_symbol.c diff --git a/clang/test/Glibc/test_asm.c b/clang/test/Glibc/test_asm.c new file mode 100644 index 000000000000..842d54c493ab --- /dev/null +++ b/clang/test/Glibc/test_asm.c @@ -0,0 +1,14 @@ +#include +#include +#include + +// please use compile command "gcc -S -DX=__NR_exit demo.c -o - | grep @@@" +// this is a tricky method to extract macro value +// gcc can pass the command but clang not +#ifndef X +#define X 0 +#endif // !X + +int main() { + asm ("@@@%0@@@" :: "i"((long int)(X))); +} diff --git a/clang/test/Glibc/test_float128.c b/clang/test/Glibc/test_float128.c new file mode 100644 index 000000000000..599a7699d716 --- /dev/null +++ b/clang/test/Glibc/test_float128.c @@ -0,0 +1,8 @@ + +#include + +int main() +{ + printf("sizeof ( Float128) = %ld\n", sizeof (_Float128)); + return 0; +} diff --git a/clang/test/Glibc/test_symbol.c b/clang/test/Glibc/test_symbol.c new file mode 100644 index 000000000000..a2bb9a837387 --- /dev/null +++ b/clang/test/Glibc/test_symbol.c @@ -0,0 +1,11 @@ + +// compile command : gcc -c test_symbol.c +typedef unsigned long size_t; + +extern void *memcpy(void *, const void *, size_t); + +void *test_memcpy(void *dst, const void *src, size_t n) { + return memcpy(dst, src, n); +} + +extern void *memcpy(void *, const void *, size_t) asm("new_name_of_memcpy"); -- Gitee