aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2021-02-23 01:43:50 +0100
committerHans-Peter Nilsson <hp@axis.com>2021-02-23 01:47:09 +0100
commit222abf8be5a33b0a3da1d34c91ed3492b5efe129 (patch)
tree3dedca7671c432c39bb6e0968afbc5c0914473dd
parent2f5765cf25115fc8306806a913d90bed6edb420b (diff)
downloadgcc-222abf8be5a33b0a3da1d34c91ed3492b5efe129.zip
gcc-222abf8be5a33b0a3da1d34c91ed3492b5efe129.tar.gz
gcc-222abf8be5a33b0a3da1d34c91ed3492b5efe129.tar.bz2
g++.dg/warn/Wplacement-new-size-1.C, -2, -6: Fix for default_packed targets
Looking at commit de05c19d5fd6, that adjustment to these tests apparently assumed that the testsuite is run (only) on targets where structure memory layout has padding as per "natural alignment". For cris-elf, a target with no padding in structure memory layout, these tests have been failing since that commit. Tested cris-elf and x86_64-linux, committed as obvious. gcc/testsuite: * g++.dg/warn/Wplacement-new-size-1.C, g++.dg/warn/Wplacement-new-size-2.C, g++.dg/warn/Wplacement-new-size-6.C: Adjust for default_packed targets.
-rw-r--r--gcc/testsuite/g++.dg/warn/Wplacement-new-size-1.C12
-rw-r--r--gcc/testsuite/g++.dg/warn/Wplacement-new-size-2.C14
-rw-r--r--gcc/testsuite/g++.dg/warn/Wplacement-new-size-6.C22
3 files changed, 24 insertions, 24 deletions
diff --git a/gcc/testsuite/g++.dg/warn/Wplacement-new-size-1.C b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-1.C
index cec8316..1ad5c2d 100644
--- a/gcc/testsuite/g++.dg/warn/Wplacement-new-size-1.C
+++ b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-1.C
@@ -67,8 +67,8 @@ void fBx (BAx *pbx, BAx &rbx)
{
BAx bax;
// The uninitialized flexible array takes up the bytes of padding.
- new (bax.ax.a) char;
- new (bax.ax.a) Int16;
+ new (bax.ax.a) char; // { dg-warning "placement" "" { target default_packed } }
+ new (bax.ax.a) Int16; // { dg-warning "placement" "" { target default_packed } }
new (bax.ax.a) Int32; // { dg-warning "placement" }
new (pbx->ax.a) char;
@@ -86,10 +86,10 @@ void fBx1 ()
static BAx bax1 = { 1, /* Ax = */ { 2, /* a[] = */ {} } };
// The empty flexible array takes up the bytes of padding.
- new (bax1.ax.a) char;
- new (bax1.ax.a) char[2];
- new (bax1.ax.a) Int16;
- new (bax1.ax.a) char[3];
+ new (bax1.ax.a) char; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) char[2]; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) Int16; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) char[3]; // { dg-warning "placement" "" { target default_packed } }
new (bax1.ax.a) char[4]; // { dg-warning "placement" }
new (bax1.ax.a) Int32; // { dg-warning "placement" }
}
diff --git a/gcc/testsuite/g++.dg/warn/Wplacement-new-size-2.C b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-2.C
index e5fdfe1..a4de2b0 100644
--- a/gcc/testsuite/g++.dg/warn/Wplacement-new-size-2.C
+++ b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-2.C
@@ -125,9 +125,9 @@ void fBx (BAx *pbx, BAx &rbx)
{
BAx bax;
// The uninitialized flexible array takes up the bytes of padding.
- new (bax.ax.a) char;
- new (bax.ax.a) Int16;
- new (bax.ax.a) char[3];
+ new (bax.ax.a) char; // { dg-warning "placement" "" { target default_packed } }
+ new (bax.ax.a) Int16; // { dg-warning "placement" "" { target default_packed } }
+ new (bax.ax.a) char[3]; // { dg-warning "placement" "" { target default_packed } }
new (bax.ax.a) Int32; // { dg-warning "placement" }
new (bax.ax.a) char[4]; // { dg-warning "placement" }
new (bax.ax.a) char[5]; // { dg-warning "placement" }
@@ -147,10 +147,10 @@ void fBx1 ()
static BAx bax1 = { 1, /* Ax = */ { 2, /* a[] = */ {} } };
// The empty flexible array takes up the bytes of padding.
- new (bax1.ax.a) char;
- new (bax1.ax.a) char[2];
- new (bax1.ax.a) Int16;
- new (bax1.ax.a) char[3];
+ new (bax1.ax.a) char; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) char[2]; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) Int16; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) char[3]; // { dg-warning "placement" "" { target default_packed } }
new (bax1.ax.a) Int32; // { dg-warning "placement" }
new (bax1.ax.a) char[4]; // { dg-warning "placement" }
new (bax1.ax.a) char[5]; // { dg-warning "placement" }
diff --git a/gcc/testsuite/g++.dg/warn/Wplacement-new-size-6.C b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-6.C
index 5eb63d2..86a18fa 100644
--- a/gcc/testsuite/g++.dg/warn/Wplacement-new-size-6.C
+++ b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-6.C
@@ -18,9 +18,9 @@ void fBx1 ()
static BAx bax1 = { 1, /* Ax = */ { 2, /* a[] = */ { 3 } } }; // { dg-error "initialization of flexible array member in a nested context" }
// The first three bytes of the flexible array member live in the padding.
- new (bax1.ax.a) char;
- new (bax1.ax.a) char[2];
- new (bax1.ax.a) Int16;
+ new (bax1.ax.a) char; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) char[2]; // { dg-warning "placement" "" { target default_packed } }
+ new (bax1.ax.a) Int16; // { dg-warning "placement" "" { target default_packed } }
new (bax1.ax.a) Int32; // { dg-warning "placement" }
}
@@ -29,10 +29,10 @@ void fBx2 ()
static BAx bax2 = { 1, /* Ax = */ { 2, /* a[] = */ { 3, 4 } } }; // { dg-error "initialization of flexible array member in a nested context" }
// The first three bytes of the flexible array member live in the padding.
- new (bax2.ax.a) char;
- new (bax2.ax.a) char[2];
- new (bax2.ax.a) char[3];
- new (bax2.ax.a) Int16;
+ new (bax2.ax.a) char; // { dg-warning "placement" "" { target default_packed } }
+ new (bax2.ax.a) char[2]; // { dg-warning "placement" "" { target default_packed } }
+ new (bax2.ax.a) char[3]; // { dg-warning "placement" "" { target default_packed } }
+ new (bax2.ax.a) Int16; // { dg-warning "placement" "" { target default_packed } }
new (bax2.ax.a) char[4]; // { dg-warning "placement" }
new (bax2.ax.a) Int32; // { dg-warning "placement" }
}
@@ -42,10 +42,10 @@ void fBx3 ()
static BAx bax2 = { 1, /* Ax = */ { 3, /* a[] = */ { 4, 5, 6 } } }; // { dg-error "initialization of flexible array member in a nested context" }
// The first three bytes of the flexible array member live in the padding.
- new (bax2.ax.a) char;
- new (bax2.ax.a) char[2];
- new (bax2.ax.a) Int16;
- new (bax2.ax.a) char[3];
+ new (bax2.ax.a) char; // { dg-warning "placement" "" { target default_packed } }
+ new (bax2.ax.a) char[2]; // { dg-warning "placement" "" { target default_packed } }
+ new (bax2.ax.a) Int16; // { dg-warning "placement" "" { target default_packed } }
+ new (bax2.ax.a) char[3]; // { dg-warning "placement" "" { target default_packed } }
new (bax2.ax.a) char[4]; // { dg-warning "placement" }
new (bax2.ax.a) Int32; // { dg-warning "placement" }
}