[gcc r13-10138] libstdc++: Fix atomic/cons/zero_padding.cc test for arm-none-eabi [PR124124]
Tomasz Kaminski
tkaminsk@gcc.gnu.org
Mon Mar 16 13:30:27 GMT 2026
https://gcc.gnu.org/g:80b20433ea8907637bf7ef57e968ee6444657042
commit r13-10138-g80b20433ea8907637bf7ef57e968ee6444657042
Author: Tomasz Kamiński <tkaminsk@redhat.com>
Date: Thu Mar 5 08:57:24 2026 +0100
libstdc++: Fix atomic/cons/zero_padding.cc test for arm-none-eabi [PR124124]
The test uses dg-require-atomic-cmpxchg-word that checks if atomic compare
exchange is available for pointer sized integers, and then test types that
are eight bytes in size. This causes issue for targets for which pointers
are four byte and libatomic is not present, like arm-none-eabi.
This patch addresses by using short member in TailPadding and MidPadding,
instead of int. This reduces the size of types to four bytes, while keeping
padding bytes present.
PR libstdc++/124124
libstdc++-v3/ChangeLog:
* testsuite/29_atomics/atomic/cons/zero_padding.cc: Limit size of
test types to four bytes.
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>
(cherry picked from commit 3a41229f92022bfb388911854d597721fce76714)
Diff:
---
libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
index f85ac4859ec5..4418b6c07e60 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
@@ -6,12 +6,12 @@
#include <cstring>
#include <testsuite_hooks.h>
-struct TailPadding { int i; char c; };
+struct TailPadding { short i; char c; };
TailPadding ztail{1, 2}; // zeroed-padding
constexpr std::atomic<TailPadding> ctail(TailPadding{1,2});
std::atomic<TailPadding> gtail(TailPadding{1,2});
-struct MidPadding { char c; int x; };
+struct MidPadding { char c; short i; };
MidPadding zmid{1, 2}; // zeroed-padding
constexpr std::atomic<MidPadding> cmid(MidPadding{1,2});
std::atomic<MidPadding> gmid(MidPadding{1,2});
@@ -25,12 +25,12 @@ struct Ctor
{
Ctor() = default;
- constexpr Ctor(char pc, char pi)
+ constexpr Ctor(char pc, short pi)
: c(pc), i(pi)
{}
char c;
- int i;
+ short i;
};
Ctor zctor{1, 2}; // zeroed-padding
More information about the Libstdc++-cvs
mailing list