public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Adhemerval Zanella <azanella@sourceware.org>
To: glibc-cvs@sourceware.org
Subject: [glibc/azanella/clang] And defines to __attribute__ (__noclone__) iff compiler supports it.
Date: Thu, 31 Mar 2022 19:08:42 +0000 (GMT)	[thread overview]
Message-ID: <20220331190842.DE00C383943C@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3f02958260e9e0587470102645c48ba77934c2ee

commit 3f02958260e9e0587470102645c48ba77934c2ee
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Mar 24 15:02:20 2022 -0300

    And defines to __attribute__ (__noclone__) iff compiler supports it.

Diff:
---
 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 +-
 34 files changed, 88 insertions(+), 78 deletions(-)

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 <signal.h>
 
 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
    <https://www.gnu.org/licenses/>.  */
 
+#include <sys/cdefs.h>
+
 /* 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 090aad6fed..e9acdbd723 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 <support/xthread.h>
 
 /* 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<unsigned int> *pvalues)
 {
@@ -166,7 +166,7 @@ call_pthread_exit_0 (const values<unsigned int> *pvalues)
   pthread_exit (NULL);
 }
 
-__attribute__ ((noinline, noclone, weak))
+__attribute__ ((noinline, weak)) __attribute_noclone__
 void
 call_pthread_exit_1 (const values<double> *pvalues)
 {
@@ -180,7 +180,7 @@ call_pthread_exit_1 (const values<double> *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 <class T, bool Nested>
-__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 <counter *Counter>
 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<counter *Counter>
-__attribute__ ((noinline, noclone))
+__attribute__ ((noinline)) __attribute_noclone__
 counting<Counter>::counting ()
 {
   ++Counter->constructed;
 }
 
 template<counter *Counter>
-__attribute__ ((noinline, noclone))
+__attribute__ ((noinline)) __attribute_noclone__
 counting<Counter>::~counting ()
 {
   ++Counter->destructed;
 }
 
 template<counter *Counter>
-void __attribute__ ((noinline, noclone))
+void __attribute__ ((noinline)) __attribute_noclone__
 counting<Counter>::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 <stdint.h>
 
 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);


             reply	other threads:[~2022-03-31 19:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-31 19:08 Adhemerval Zanella [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-04-17 20:09 Adhemerval Zanella
2024-04-02 15:55 Adhemerval Zanella
2024-02-09 17:33 Adhemerval Zanella
2024-02-07 14:09 Adhemerval Zanella
2024-01-29 17:59 Adhemerval Zanella
2023-12-21 18:55 Adhemerval Zanella
2023-09-28 17:54 Adhemerval Zanella
2023-08-30 12:38 Adhemerval Zanella
2023-02-09 19:50 Adhemerval Zanella
2022-10-28 17:43 Adhemerval Zanella
2022-10-04 13:01 Adhemerval Zanella
2022-06-09 21:22 Adhemerval Zanella
2022-06-09 13:18 Adhemerval Zanella
2022-06-03 14:08 Adhemerval Zanella
2022-05-13 14:21 Adhemerval Zanella
2022-05-12 19:35 Adhemerval Zanella
2022-05-10 18:26 Adhemerval Zanella
2022-04-29 14:06 Adhemerval Zanella
2022-04-04 12:56 Adhemerval Zanella
2022-03-29 20:31 Adhemerval Zanella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220331190842.DE00C383943C@sourceware.org \
    --to=azanella@sourceware.org \
    --cc=glibc-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).