g++.dg/warn/Wplacement-new-size-1.C, -2, -6: Fix for default_packed targets

Looking at commit de05c19d5f, 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.
This commit is contained in:
Hans-Peter Nilsson 2021-02-23 01:43:50 +01:00
parent 2f5765cf25
commit 222abf8be5
3 changed files with 24 additions and 24 deletions

View file

@ -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" }
}

View file

@ -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" }

View file

@ -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" }
}