[gcc r14-12432] libstdc++: Fix atomic/cons/zero_padding.cc test for arm-none-eabi [PR124124]
Tomasz Kaminski
tkaminsk@gcc.gnu.org
Mon Mar 16 10:21:20 GMT 2026
https://gcc.gnu.org/g:9c8d867abcda3df5db07aaaf241aee3574d86677
commit r14-12432-g9c8d867abcda3df5db07aaaf241aee3574d86677
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