From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 71F1C3856DC4; Fri, 29 Apr 2022 14:06:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 71F1C3856DC4 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc/azanella/clang] And defines to __attribute__ (__noclone__) iff compiler supports it. X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/azanella/clang X-Git-Oldrev: 5874d51185b4084908766be8e033d8ae8bf7a3b2 X-Git-Newrev: 02252c39e15c8ede6fcf49b20cba852fc2465639 Message-Id: <20220429140602.71F1C3856DC4@sourceware.org> Date: Fri, 29 Apr 2022 14:06:02 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2022 14:06:02 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=02252c39e15c8ede6fcf49b20cba852fc2465639 commit 02252c39e15c8ede6fcf49b20cba852fc2465639 Author: Adhemerval Zanella Date: Thu Mar 24 15:02:20 2022 -0300 And defines to __attribute__ (__noclone__) iff compiler supports it. Diff: --- benchtests/bench-strchr.c | 4 ++-- debug/tst-backtrace.h | 2 +- debug/tst-ssp-1.c | 2 +- elf/tst-dlmodcount.c | 2 +- elf/tst-p_alignmod-base.c | 2 +- gmon/tst-gmon.c | 8 +++++--- malloc/tst-malloc-thread-exit.c | 2 +- malloc/tst-malloc-thread-fail.c | 2 +- malloc/tst-mallocstate.c | 2 +- misc/sys/cdefs.h | 7 +++++++ misc/tst-syscalls.c | 14 +++++++------- nptl/tst-minstack-throw.cc | 8 ++++---- nptl/tst-thread-exit-clobber.cc | 12 ++++++------ nptl/tst-thread_local1.cc | 12 ++++++------ stdlib/tst-makecontext-align.c | 20 ++++++++++---------- stdlib/tst-quick_exit.cc | 2 +- stdlib/tst-setcontext5.c | 4 ++-- stdlib/tst-setcontext8.c | 2 +- stdlib/tst-setcontext9.c | 2 +- stdlib/tst-swapcontext1.c | 8 ++++---- stdlib/tst-thread-quick_exit.cc | 2 +- string/tst-xbzero-opt.c | 3 ++- sysdeps/generic/tst-stack-align.h | 2 +- sysdeps/x86/tst-ldbl-nonnormal-printf.c | 2 +- sysdeps/x86/tst-memchr-rtm.c | 4 ++-- sysdeps/x86/tst-memcmp-rtm.c | 4 ++-- sysdeps/x86/tst-memmove-rtm.c | 4 ++-- sysdeps/x86/tst-memrchr-rtm.c | 4 ++-- sysdeps/x86/tst-memset-rtm.c | 4 ++-- sysdeps/x86/tst-strchr-rtm.c | 4 ++-- sysdeps/x86/tst-strcpy-rtm.c | 4 ++-- sysdeps/x86/tst-strlen-rtm.c | 4 ++-- sysdeps/x86/tst-strncmp-rtm.c | 6 +++--- sysdeps/x86/tst-strrchr-rtm.c | 4 ++-- sysdeps/x86_64/tst-rsi-strlen.c | 2 +- 35 files changed, 90 insertions(+), 80 deletions(-) diff --git a/benchtests/bench-strchr.c b/benchtests/bench-strchr.c index 54640bde7e..54c5c283ae 100644 --- a/benchtests/bench-strchr.c +++ b/benchtests/bench-strchr.c @@ -93,7 +93,7 @@ IMPL (STRCHR, 1) branch coming we want to test the case where a potential branch in strchr can be used to skip a later mispredict because of the relationship between the two branches. */ -static void __attribute__ ((noinline, noclone)) +static void __attribute__ ((noinline)) __attribute_noclone__ do_one_rand_plus_branch_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, const CHAR *c) { @@ -118,7 +118,7 @@ do_one_rand_plus_branch_test (json_ctx_t *json_ctx, impl_t *impl, json_element_double (json_ctx, (double)cur / (double)iters); } -static void __attribute__ ((noinline, noclone)) +static void __attribute__ ((noinline)) __attribute_noclone__ do_one_rand_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, const CHAR *c) { diff --git a/debug/tst-backtrace.h b/debug/tst-backtrace.h index f79b267fce..6c86005f2e 100644 --- a/debug/tst-backtrace.h +++ b/debug/tst-backtrace.h @@ -33,7 +33,7 @@ volatile int x; /* Use this attribute to prevent inlining, so that all expected frames are present. */ -#define NO_INLINE __attribute__ ((noinline, noclone, weak)) +#define NO_INLINE __attribute__ ((noinline, weak)) __attribute_noclone__ /* Look for a match in SYM from backtrace_symbols to NAME, a fragment of a function name. Ignore the filename before '(', but presume diff --git a/debug/tst-ssp-1.c b/debug/tst-ssp-1.c index c2d1baa99c..74a4403f18 100644 --- a/debug/tst-ssp-1.c +++ b/debug/tst-ssp-1.c @@ -21,7 +21,7 @@ #include static void -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ test (char *foo) { int i; diff --git a/elf/tst-dlmodcount.c b/elf/tst-dlmodcount.c index 8a96803d85..d5f89b8f79 100644 --- a/elf/tst-dlmodcount.c +++ b/elf/tst-dlmodcount.c @@ -32,7 +32,7 @@ callback (struct dl_phdr_info *info, size_t size, void *ptr) static int last_adds = 0, last_subs = 0; intptr_t cmd = (intptr_t) ptr; - printf (" size = %Zu\n", size); + printf (" size = %zu\n", size); if (size < (offsetof (struct dl_phdr_info, dlpi_subs) + sizeof (info->dlpi_subs))) { diff --git a/elf/tst-p_alignmod-base.c b/elf/tst-p_alignmod-base.c index 0fc1b75523..4aae5f1e54 100644 --- a/elf/tst-p_alignmod-base.c +++ b/elf/tst-p_alignmod-base.c @@ -26,7 +26,7 @@ int foo __attribute__ ((aligned (ALIGN))) = 1; bool -__attribute__ ((weak, noclone, noinline)) +__attribute__ ((weak, noinline)) __attribute_noclone__ is_aligned_p (void *p, int align) { return (((uintptr_t) p) & (align - 1)) == 0; diff --git a/gmon/tst-gmon.c b/gmon/tst-gmon.c index aca5921523..72a80a629f 100644 --- a/gmon/tst-gmon.c +++ b/gmon/tst-gmon.c @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ +#include + /* This program does not use the test harness because we want tight control over the call graph. */ -__attribute__ ((noinline, noclone, weak)) void +__attribute__ ((noinline, weak)) __attribute_noclone__ void f1 (void) { } -__attribute__ ((noinline, noclone, weak)) void +__attribute__ ((noinline, weak)) __attribute_noclone__ void f2 (void) { f1 (); @@ -32,7 +34,7 @@ f2 (void) asm volatile (""); } -__attribute__ ((noinline, noclone, weak)) void +__attribute__ ((noinline, weak)) __attribute_noclone__ void f3 (int count) { for (int i = 0; i < count; ++i) diff --git a/malloc/tst-malloc-thread-exit.c b/malloc/tst-malloc-thread-exit.c index 492d969686..41d73d6653 100644 --- a/malloc/tst-malloc-thread-exit.c +++ b/malloc/tst-malloc-thread-exit.c @@ -42,7 +42,7 @@ static int inner_thread_count = 4; static size_t malloc_size = 32; static void -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ unoptimized_free (void *ptr) { free (ptr); diff --git a/malloc/tst-malloc-thread-fail.c b/malloc/tst-malloc-thread-fail.c index 65cf9321c2..074ac5332f 100644 --- a/malloc/tst-malloc-thread-fail.c +++ b/malloc/tst-malloc-thread-fail.c @@ -33,7 +33,7 @@ /* Wrapper for calloc with an optimization barrier. */ static void * -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ allocate_zeroed (size_t a, size_t b) { return calloc (a, b); diff --git a/malloc/tst-mallocstate.c b/malloc/tst-mallocstate.c index c2011a44ef..9d658fd85d 100644 --- a/malloc/tst-mallocstate.c +++ b/malloc/tst-mallocstate.c @@ -366,7 +366,7 @@ full_heap_check (void) } /* Used as an optimization barrier to force a heap allocation. */ -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static void my_free (void *ptr) { diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index 2138312344..329b7492e9 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -703,4 +703,11 @@ _Static_assert (0, "Compat long double requires redirection on this platform"); # define __attribute_returns_twice__ /* Ignore. */ #endif +/* Prevents a function from being considered for cloning. */ +#if __GNUC_PREREQ (4, 5) || __glibc_has_attribute (__noclone__) +# define __attribute_noclone__ __attribute__ ((__noclone__)) +#else +# define __attribute_noclone__ /* Ignore. */ +#endif + #endif /* sys/cdefs.h */ diff --git a/misc/tst-syscalls.c b/misc/tst-syscalls.c index 09b5128e8b..08b0cd2e56 100644 --- a/misc/tst-syscalls.c +++ b/misc/tst-syscalls.c @@ -37,7 +37,7 @@ struct Array static int error_count; -__attribute__ ((noclone, noinline)) +__attribute__ ((noinline)) __attribute_noclone__ struct Array allocate (size_t bytes) { @@ -52,7 +52,7 @@ allocate (size_t bytes) return __extension__ (struct Array) {bytes, p}; } -__attribute__ ((noclone, noinline)) +__attribute__ ((noinline)) __attribute_noclone__ void deallocate (struct Array b) { @@ -66,7 +66,7 @@ deallocate (struct Array b) } } -__attribute__ ((noclone, noinline)) +__attribute__ ((noinline)) __attribute_noclone__ void * do_mmap (void *addr, size_t length) { @@ -74,7 +74,7 @@ do_mmap (void *addr, size_t length) MAP_PRIVATE | MAP_ANON, -1, 0); } -__attribute__ ((noclone, noinline)) +__attribute__ ((noinline)) __attribute_noclone__ void * reallocate (struct Array b) { @@ -86,7 +86,7 @@ reallocate (struct Array b) return NULL; } -__attribute__ ((noclone, noinline)) +__attribute__ ((noinline)) __attribute_noclone__ void protect (struct Array b) { @@ -104,7 +104,7 @@ protect (struct Array b) } } -__attribute__ ((noclone, noinline)) +__attribute__ ((noinline)) __attribute_noclone__ ssize_t do_read (int fd, void *ptr, struct Array b) { @@ -116,7 +116,7 @@ do_read (int fd, void *ptr, struct Array b) return 0; } -__attribute__ ((noclone, noinline)) +__attribute__ ((noinline)) __attribute_noclone__ ssize_t do_write (int fd, void *ptr, struct Array b) { diff --git a/nptl/tst-minstack-throw.cc b/nptl/tst-minstack-throw.cc index d2f020a93a..4c69289c66 100644 --- a/nptl/tst-minstack-throw.cc +++ b/nptl/tst-minstack-throw.cc @@ -24,7 +24,7 @@ #include /* Throw a std::runtime_exception. */ -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void do_throw_exception () { @@ -38,17 +38,17 @@ struct class_with_destructor ~class_with_destructor (); }; -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ class_with_destructor::class_with_destructor () { } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ class_with_destructor::~class_with_destructor () { } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void function_with_destructed_object () { diff --git a/nptl/tst-thread-exit-clobber.cc b/nptl/tst-thread-exit-clobber.cc index f9f4e1fc80..88f2451fdb 100644 --- a/nptl/tst-thread-exit-clobber.cc +++ b/nptl/tst-thread-exit-clobber.cc @@ -73,7 +73,7 @@ enum { no_check = -1 }; /* Check that VALUE is the magic value for INDEX, behind a compiler barrier. */ -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_magic (int index, unsigned int value) { @@ -103,7 +103,7 @@ check_magic (int index, unsigned int value) /* Check that VALUE is the magic value for INDEX, behind a compiler barrier. Double variant. */ -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_magic (int index, double value) { @@ -153,7 +153,7 @@ struct checker call_pthread_exit are used to call pthread_exit indirectly, with the intent of clobbering the register values. */ -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void call_pthread_exit_0 (const values *pvalues) { @@ -166,7 +166,7 @@ call_pthread_exit_0 (const values *pvalues) pthread_exit (NULL); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void call_pthread_exit_1 (const values *pvalues) { @@ -180,7 +180,7 @@ call_pthread_exit_1 (const values *pvalues) call_pthread_exit_0 (&other_values); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void call_pthread_exit () { @@ -192,7 +192,7 @@ call_pthread_exit () pthread_exit. If Nested is true, call pthread_exit indirectly via call_pthread_exit. */ template -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void * threadfunc (void *closure) { diff --git a/nptl/tst-thread_local1.cc b/nptl/tst-thread_local1.cc index 67e696b562..0753859110 100644 --- a/nptl/tst-thread_local1.cc +++ b/nptl/tst-thread_local1.cc @@ -53,27 +53,27 @@ to_string (const counter &c) template struct counting { - counting () __attribute__ ((noinline, noclone)); - ~counting () __attribute__ ((noinline, noclone)); - void operation () __attribute__ ((noinline, noclone)); + counting () __attribute__ ((noinline)) __attribute_noclone__; + ~counting () __attribute__ ((noinline)) __attribute_noclone__; + void operation () __attribute__ ((noinline)) __attribute_noclone__; }; template -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ counting::counting () { ++Counter->constructed; } template -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ counting::~counting () { ++Counter->destructed; } template -void __attribute__ ((noinline, noclone)) +void __attribute__ ((noinline)) __attribute_noclone__ counting::operation () { // Optimization barrier. diff --git a/stdlib/tst-makecontext-align.c b/stdlib/tst-makecontext-align.c index bb3fec155a..1ec4594aad 100644 --- a/stdlib/tst-makecontext-align.c +++ b/stdlib/tst-makecontext-align.c @@ -30,7 +30,7 @@ static const char *context; /* Check that ADDRESS is aligned to ALIGNMENT bytes, behind a compiler barrier. */ -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align (void *address, size_t alignment) { @@ -45,7 +45,7 @@ check_align (void *address, size_t alignment) /* Various alignment checking functions. */ -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_int (void) { @@ -53,7 +53,7 @@ check_align_int (void) check_align (&a, __alignof__ (a)); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_long (void) { @@ -61,7 +61,7 @@ check_align_long (void) check_align (&a, __alignof__ (a)); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_long_long (void) { @@ -69,7 +69,7 @@ check_align_long_long (void) check_align (&a, __alignof__ (a)); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_double (void) { @@ -77,7 +77,7 @@ check_align_double (void) check_align (&a, __alignof__ (a)); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_4 (void) { @@ -85,7 +85,7 @@ check_align_4 (void) check_align (&a, 4); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_8 (void) { @@ -93,7 +93,7 @@ check_align_8 (void) check_align (&a, 8); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_16 (void) { @@ -105,7 +105,7 @@ check_align_16 (void) check_align (&a, 16); } -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_align_32 (void) { @@ -120,7 +120,7 @@ check_align_32 (void) } /* Call all the alignment checking functions. */ -__attribute__ ((noinline, noclone, weak)) +__attribute__ ((noinline, weak)) __attribute_noclone__ void check_alignments (void) { diff --git a/stdlib/tst-quick_exit.cc b/stdlib/tst-quick_exit.cc index d59b6825d6..acc9dfd7ad 100644 --- a/stdlib/tst-quick_exit.cc +++ b/stdlib/tst-quick_exit.cc @@ -26,7 +26,7 @@ struct A thread_local A a; void -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ optimization_barrier (A &) { } diff --git a/stdlib/tst-setcontext5.c b/stdlib/tst-setcontext5.c index 64f81a30a6..0a59df7187 100644 --- a/stdlib/tst-setcontext5.c +++ b/stdlib/tst-setcontext5.c @@ -27,7 +27,7 @@ static volatile int done; static void f2 (void); static void -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ f1 (void) { printf ("start f1\n"); @@ -35,7 +35,7 @@ f1 (void) } static void -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ f2 (void) { printf ("start f2\n"); diff --git a/stdlib/tst-setcontext8.c b/stdlib/tst-setcontext8.c index 82d5e89e9d..9046737d35 100644 --- a/stdlib/tst-setcontext8.c +++ b/stdlib/tst-setcontext8.c @@ -26,7 +26,7 @@ static ucontext_t ctx[3]; static atomic_int done; static void -__attribute__((noinline, noclone)) +__attribute__((noinline)) __attribute_noclone__ f2 (void) { printf ("start f2\n"); diff --git a/stdlib/tst-setcontext9.c b/stdlib/tst-setcontext9.c index 23cf09d1e2..a05f0ffdb5 100644 --- a/stdlib/tst-setcontext9.c +++ b/stdlib/tst-setcontext9.c @@ -26,7 +26,7 @@ static ucontext_t ctx[5]; static atomic_int done; static void -__attribute__((noinline, noclone)) +__attribute__((noinline)) __attribute_noclone__ f2 (void) { done++; diff --git a/stdlib/tst-swapcontext1.c b/stdlib/tst-swapcontext1.c index 8850279ec3..a4170ae18c 100644 --- a/stdlib/tst-swapcontext1.c +++ b/stdlib/tst-swapcontext1.c @@ -29,7 +29,7 @@ const char *fmt2 = "\e[34m"; #define handle_error(msg) \ do { perror(msg); exit(EXIT_FAILURE); } while (0) -__attribute__((noinline, noclone)) +__attribute__((noinline)) __attribute_noclone__ static void func4(ucontext_t *uocp, ucontext_t *ucp, const char *str, const char *fmt) { @@ -39,7 +39,7 @@ func4(ucontext_t *uocp, ucontext_t *ucp, const char *str, const char *fmt) printf(" %sfunc4: returning\e[0m\n", fmt); } -__attribute__((noinline, noclone)) +__attribute__((noinline)) __attribute_noclone__ static void func3(ucontext_t *uocp, ucontext_t *ucp, const char *str, const char *fmt) { @@ -48,7 +48,7 @@ func3(ucontext_t *uocp, ucontext_t *ucp, const char *str, const char *fmt) printf(" %sfunc3: returning\e[0m\n", fmt); } -__attribute__((noinline, noclone)) +__attribute__((noinline)) __attribute_noclone__ static void func1(void) { @@ -59,7 +59,7 @@ func1(void) } } -__attribute__((noinline, noclone)) +__attribute__((noinline)) __attribute_noclone__ static void func2(void) { diff --git a/stdlib/tst-thread-quick_exit.cc b/stdlib/tst-thread-quick_exit.cc index 706d7b23d5..9e4ba0e2bf 100644 --- a/stdlib/tst-thread-quick_exit.cc +++ b/stdlib/tst-thread-quick_exit.cc @@ -30,7 +30,7 @@ thread_local A a1; thread_local A a2; void -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ optimization_barrier (A &) { } diff --git a/string/tst-xbzero-opt.c b/string/tst-xbzero-opt.c index 64993d7a47..c6fefd3a5f 100644 --- a/string/tst-xbzero-opt.c +++ b/string/tst-xbzero-opt.c @@ -97,7 +97,8 @@ static const unsigned char test_pattern[16] = static ucontext_t uc_main, uc_co; -static __attribute__ ((noinline, noclone)) int +static __attribute__ ((noinline)) __attribute_noclone__ +int use_test_buffer (unsigned char *buf) { unsigned int sum = 0; diff --git a/sysdeps/generic/tst-stack-align.h b/sysdeps/generic/tst-stack-align.h index 91a5cd7228..96f309eed5 100644 --- a/sysdeps/generic/tst-stack-align.h +++ b/sysdeps/generic/tst-stack-align.h @@ -20,7 +20,7 @@ #include int -__attribute__ ((weak, noclone, noinline)) +__attribute__ ((weak, noinline)) __attribute_noclone__ is_aligned (void *p, int align) { return (((uintptr_t) p) & (align - 1)) != 0; diff --git a/sysdeps/x86/tst-ldbl-nonnormal-printf.c b/sysdeps/x86/tst-ldbl-nonnormal-printf.c index 9dae2e4c9b..63dd1be46b 100644 --- a/sysdeps/x86/tst-ldbl-nonnormal-printf.c +++ b/sysdeps/x86/tst-ldbl-nonnormal-printf.c @@ -23,7 +23,7 @@ /* Fill the stack with non-zero values. This makes a crash in snprintf more likely. */ -static void __attribute__ ((noinline, noclone)) +static void __attribute__ ((noinline)) __attribute_noclone__ fill_stack (void) { char buffer[65536]; diff --git a/sysdeps/x86/tst-memchr-rtm.c b/sysdeps/x86/tst-memchr-rtm.c index 117757e412..5b7bf7bcc6 100644 --- a/sysdeps/x86/tst-memchr-rtm.c +++ b/sysdeps/x86/tst-memchr-rtm.c @@ -22,7 +22,7 @@ #define STRING_SIZE 1024 char string1[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -36,7 +36,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-memcmp-rtm.c b/sysdeps/x86/tst-memcmp-rtm.c index 98a86f1288..294d55bec6 100644 --- a/sysdeps/x86/tst-memcmp-rtm.c +++ b/sysdeps/x86/tst-memcmp-rtm.c @@ -23,7 +23,7 @@ char string1[STRING_SIZE]; char string2[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -35,7 +35,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-memmove-rtm.c b/sysdeps/x86/tst-memmove-rtm.c index 0f5341f083..639b1b9faa 100644 --- a/sysdeps/x86/tst-memmove-rtm.c +++ b/sysdeps/x86/tst-memmove-rtm.c @@ -23,7 +23,7 @@ char string1[STRING_SIZE]; char string2[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -35,7 +35,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-memrchr-rtm.c b/sysdeps/x86/tst-memrchr-rtm.c index 34d54a5138..07ffd1ac42 100644 --- a/sysdeps/x86/tst-memrchr-rtm.c +++ b/sysdeps/x86/tst-memrchr-rtm.c @@ -22,7 +22,7 @@ #define STRING_SIZE 1024 char string1[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -36,7 +36,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-memset-rtm.c b/sysdeps/x86/tst-memset-rtm.c index 89e0a2119e..06bc7963f1 100644 --- a/sysdeps/x86/tst-memset-rtm.c +++ b/sysdeps/x86/tst-memset-rtm.c @@ -22,7 +22,7 @@ #define STRING_SIZE 1024 char string1[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -30,7 +30,7 @@ prepare (void) return EXIT_SUCCESS; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-strchr-rtm.c b/sysdeps/x86/tst-strchr-rtm.c index 22f0ba9a89..24e159e6da 100644 --- a/sysdeps/x86/tst-strchr-rtm.c +++ b/sysdeps/x86/tst-strchr-rtm.c @@ -22,7 +22,7 @@ #define STRING_SIZE 1024 char string1[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -36,7 +36,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-strcpy-rtm.c b/sysdeps/x86/tst-strcpy-rtm.c index 051555cf52..beaf5c5add 100644 --- a/sysdeps/x86/tst-strcpy-rtm.c +++ b/sysdeps/x86/tst-strcpy-rtm.c @@ -23,7 +23,7 @@ char string1[STRING_SIZE]; char string2[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -35,7 +35,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-strlen-rtm.c b/sysdeps/x86/tst-strlen-rtm.c index 51a5c5692e..7b840b2de5 100644 --- a/sysdeps/x86/tst-strlen-rtm.c +++ b/sysdeps/x86/tst-strlen-rtm.c @@ -22,7 +22,7 @@ #define STRING_SIZE 1024 char string1[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -35,7 +35,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86/tst-strncmp-rtm.c b/sysdeps/x86/tst-strncmp-rtm.c index a3b14e72ff..fc33e9229a 100644 --- a/sysdeps/x86/tst-strncmp-rtm.c +++ b/sysdeps/x86/tst-strncmp-rtm.c @@ -38,7 +38,7 @@ CHAR string1[STRING_SIZE]; CHAR string2[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -50,7 +50,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { @@ -60,7 +60,7 @@ function (void) return 1; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function_overflow (void) { diff --git a/sysdeps/x86/tst-strrchr-rtm.c b/sysdeps/x86/tst-strrchr-rtm.c index fd5c944eeb..c2aeb2067e 100644 --- a/sysdeps/x86/tst-strrchr-rtm.c +++ b/sysdeps/x86/tst-strrchr-rtm.c @@ -22,7 +22,7 @@ #define STRING_SIZE 1024 char string1[STRING_SIZE]; -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int prepare (void) { @@ -35,7 +35,7 @@ prepare (void) return EXIT_FAILURE; } -__attribute__ ((noinline, noclone)) +__attribute__ ((noinline)) __attribute_noclone__ static int function (void) { diff --git a/sysdeps/x86_64/tst-rsi-strlen.c b/sysdeps/x86_64/tst-rsi-strlen.c index 0bd82c2aad..682172f6e3 100644 --- a/sysdeps/x86_64/tst-rsi-strlen.c +++ b/sysdeps/x86_64/tst-rsi-strlen.c @@ -44,7 +44,7 @@ typedef struct } parameter_t; size_t -__attribute__ ((weak, noinline, noclone)) +__attribute__ ((weak, noinline)) __attribute_noclone__ do_strlen (parameter_t *a, int zero, const CHAR *str) { return CALL (a, str);