testsuite: Handle "packed" targets in c-c++-common/auto-init-7.c and -8.c

Message ID 20230215191957.F12532042E@pchp3.se.axis.com
State Accepted
Headers
Series testsuite: Handle "packed" targets in c-c++-common/auto-init-7.c and -8.c |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Hans-Peter Nilsson Feb. 15, 2023, 7:19 p.m. UTC
  Tested for cris-elf.  Ok to commit?

-- >8 --
Looks like there's a failed assumption that
sizeof (union U { char u1[5]; int u2; float u3; }) == 8.
However, for "packed" targets like cris-elf, it's 5.

These two tests have always failed for cris-elf.  I see from
https://gcc.gnu.org/pipermail/gcc-testresults/2023-February/777912.html
that they fail on pru-elf too, but I don't know if the cause
(and/or remedy) is the same.

IMHO this is preferred over the alternative; splitting up
that last line into two lines, like:
/* { dg-final { scan-tree-dump "temp4 = \
 .DEFERRED_INIT \\(8, 2, \&\"temp4\"" "gimple" { target { ! default_packed } } } } */
/* { dg-final { scan-tree-dump "temp4 = \
 .DEFERRED_INIT \\(5, 2, \&\"temp4\"" "gimple" { target default_packed } } } */

gcc/testsuite:
	* c-c++-common/auto-init-7.c, c-c++-common/auto-init-8.c: Also
	match targets where sizeof (union U) == 5, like "packed" targets.
---
 gcc/testsuite/c-c++-common/auto-init-7.c | 2 +-
 gcc/testsuite/c-c++-common/auto-init-8.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
  

Comments

Qing Zhao Feb. 15, 2023, 7:30 p.m. UTC | #1
Thank you for fixing this issue.

Qing

> On Feb 15, 2023, at 2:19 PM, Hans-Peter Nilsson <hp@axis.com> wrote:
> 
> Tested for cris-elf.  Ok to commit?
> 
> -- >8 --
> Looks like there's a failed assumption that
> sizeof (union U { char u1[5]; int u2; float u3; }) == 8.
> However, for "packed" targets like cris-elf, it's 5.
> 
> These two tests have always failed for cris-elf.  I see from
> https://gcc.gnu.org/pipermail/gcc-testresults/2023-February/777912.html
> that they fail on pru-elf too, but I don't know if the cause
> (and/or remedy) is the same.
> 
> IMHO this is preferred over the alternative; splitting up
> that last line into two lines, like:
> /* { dg-final { scan-tree-dump "temp4 = \
> .DEFERRED_INIT \\(8, 2, \&\"temp4\"" "gimple" { target { ! default_packed } } } } */
> /* { dg-final { scan-tree-dump "temp4 = \
> .DEFERRED_INIT \\(5, 2, \&\"temp4\"" "gimple" { target default_packed } } } */
> 
> gcc/testsuite:
> 	* c-c++-common/auto-init-7.c, c-c++-common/auto-init-8.c: Also
> 	match targets where sizeof (union U) == 5, like "packed" targets.
> ---
> gcc/testsuite/c-c++-common/auto-init-7.c | 2 +-
> gcc/testsuite/c-c++-common/auto-init-8.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gcc/testsuite/c-c++-common/auto-init-7.c b/gcc/testsuite/c-c++-common/auto-init-7.c
> index b44dd5e68ed1..dd48d691596f 100644
> --- a/gcc/testsuite/c-c++-common/auto-init-7.c
> +++ b/gcc/testsuite/c-c++-common/auto-init-7.c
> @@ -32,4 +32,4 @@ double foo()
> /* { dg-final { scan-tree-dump "temp1 = .DEFERRED_INIT \\(12, 2, \&\"temp1\"" "gimple" } } */
> /* { dg-final { scan-tree-dump "temp2 = .DEFERRED_INIT \\(24, 2, \&\"temp2\"" "gimple" } } */
> /* { dg-final { scan-tree-dump "temp3 = .DEFERRED_INIT \\(28, 2, \&\"temp3\"" "gimple" } } */
> -/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\(8, 2, \&\"temp4\"" "gimple" } } */
> +/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\((8|5), 2, \&\"temp4\"" "gimple" } } */
> diff --git a/gcc/testsuite/c-c++-common/auto-init-8.c b/gcc/testsuite/c-c++-common/auto-init-8.c
> index 739ac0289315..863f2ba87d7d 100644
> --- a/gcc/testsuite/c-c++-common/auto-init-8.c
> +++ b/gcc/testsuite/c-c++-common/auto-init-8.c
> @@ -32,4 +32,4 @@ double foo()
> /* { dg-final { scan-tree-dump "temp1 = .DEFERRED_INIT \\(12, 1, \&\"temp1\"" "gimple" } } */
> /* { dg-final { scan-tree-dump "temp2 = .DEFERRED_INIT \\(24, 1, \&\"temp2\"" "gimple" } } */
> /* { dg-final { scan-tree-dump "temp3 = .DEFERRED_INIT \\(28, 1, \&\"temp3\"" "gimple" } } */
> -/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\(8, 1, \&\"temp4\"" "gimple" } } */
> +/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\((8|5), 1, \&\"temp4\"" "gimple" } } */
> -- 
> 2.30.2
>
  
Hans-Peter Nilsson Feb. 22, 2023, 5:53 p.m. UTC | #2
> From: Qing Zhao <qing.zhao@oracle.com>
> Date: Wed, 15 Feb 2023 20:30:00 +0100

> Thank you for fixing this issue.

Thanks!  Although you're not holding an approver position
I'm tempted to take that as approval, as you're the author
of that test.  This being a patch of no particular
significance and having seen no other comments, I'll do
that, but delay another week.

brgds, H-P

> 
> Qing
> 
> > On Feb 15, 2023, at 2:19 PM, Hans-Peter Nilsson <hp@axis.com> wrote:
> > 
> > Tested for cris-elf.  Ok to commit?
> > 
> > -- >8 --
> > Looks like there's a failed assumption that
> > sizeof (union U { char u1[5]; int u2; float u3; }) == 8.
> > However, for "packed" targets like cris-elf, it's 5.
> > 
> > These two tests have always failed for cris-elf.  I see from
> > https://gcc.gnu.org/pipermail/gcc-testresults/2023-February/777912.html
> > that they fail on pru-elf too, but I don't know if the cause
> > (and/or remedy) is the same.
> > 
> > IMHO this is preferred over the alternative; splitting up
> > that last line into two lines, like:
> > /* { dg-final { scan-tree-dump "temp4 = \
> > .DEFERRED_INIT \\(8, 2, \&\"temp4\"" "gimple" { target { ! default_packed } } } } */
> > /* { dg-final { scan-tree-dump "temp4 = \
> > .DEFERRED_INIT \\(5, 2, \&\"temp4\"" "gimple" { target default_packed } } } */
> > 
> > gcc/testsuite:
> > 	* c-c++-common/auto-init-7.c, c-c++-common/auto-init-8.c: Also
> > 	match targets where sizeof (union U) == 5, like "packed" targets.
> > ---
> > gcc/testsuite/c-c++-common/auto-init-7.c | 2 +-
> > gcc/testsuite/c-c++-common/auto-init-8.c | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/gcc/testsuite/c-c++-common/auto-init-7.c b/gcc/testsuite/c-c++-common/auto-init-7.c
> > index b44dd5e68ed1..dd48d691596f 100644
> > --- a/gcc/testsuite/c-c++-common/auto-init-7.c
> > +++ b/gcc/testsuite/c-c++-common/auto-init-7.c
> > @@ -32,4 +32,4 @@ double foo()
> > /* { dg-final { scan-tree-dump "temp1 = .DEFERRED_INIT \\(12, 2, \&\"temp1\"" "gimple" } } */
> > /* { dg-final { scan-tree-dump "temp2 = .DEFERRED_INIT \\(24, 2, \&\"temp2\"" "gimple" } } */
> > /* { dg-final { scan-tree-dump "temp3 = .DEFERRED_INIT \\(28, 2, \&\"temp3\"" "gimple" } } */
> > -/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\(8, 2, \&\"temp4\"" "gimple" } } */
> > +/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\((8|5), 2, \&\"temp4\"" "gimple" } } */
> > diff --git a/gcc/testsuite/c-c++-common/auto-init-8.c b/gcc/testsuite/c-c++-common/auto-init-8.c
> > index 739ac0289315..863f2ba87d7d 100644
> > --- a/gcc/testsuite/c-c++-common/auto-init-8.c
> > +++ b/gcc/testsuite/c-c++-common/auto-init-8.c
> > @@ -32,4 +32,4 @@ double foo()
> > /* { dg-final { scan-tree-dump "temp1 = .DEFERRED_INIT \\(12, 1, \&\"temp1\"" "gimple" } } */
> > /* { dg-final { scan-tree-dump "temp2 = .DEFERRED_INIT \\(24, 1, \&\"temp2\"" "gimple" } } */
> > /* { dg-final { scan-tree-dump "temp3 = .DEFERRED_INIT \\(28, 1, \&\"temp3\"" "gimple" } } */
> > -/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\(8, 1, \&\"temp4\"" "gimple" } } */
> > +/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\((8|5), 1, \&\"temp4\"" "gimple" } } */
> > -- 
> > 2.30.2
> > 
>
  

Patch

diff --git a/gcc/testsuite/c-c++-common/auto-init-7.c b/gcc/testsuite/c-c++-common/auto-init-7.c
index b44dd5e68ed1..dd48d691596f 100644
--- a/gcc/testsuite/c-c++-common/auto-init-7.c
+++ b/gcc/testsuite/c-c++-common/auto-init-7.c
@@ -32,4 +32,4 @@  double foo()
 /* { dg-final { scan-tree-dump "temp1 = .DEFERRED_INIT \\(12, 2, \&\"temp1\"" "gimple" } } */
 /* { dg-final { scan-tree-dump "temp2 = .DEFERRED_INIT \\(24, 2, \&\"temp2\"" "gimple" } } */
 /* { dg-final { scan-tree-dump "temp3 = .DEFERRED_INIT \\(28, 2, \&\"temp3\"" "gimple" } } */
-/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\(8, 2, \&\"temp4\"" "gimple" } } */
+/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\((8|5), 2, \&\"temp4\"" "gimple" } } */
diff --git a/gcc/testsuite/c-c++-common/auto-init-8.c b/gcc/testsuite/c-c++-common/auto-init-8.c
index 739ac0289315..863f2ba87d7d 100644
--- a/gcc/testsuite/c-c++-common/auto-init-8.c
+++ b/gcc/testsuite/c-c++-common/auto-init-8.c
@@ -32,4 +32,4 @@  double foo()
 /* { dg-final { scan-tree-dump "temp1 = .DEFERRED_INIT \\(12, 1, \&\"temp1\"" "gimple" } } */
 /* { dg-final { scan-tree-dump "temp2 = .DEFERRED_INIT \\(24, 1, \&\"temp2\"" "gimple" } } */
 /* { dg-final { scan-tree-dump "temp3 = .DEFERRED_INIT \\(28, 1, \&\"temp3\"" "gimple" } } */
-/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\(8, 1, \&\"temp4\"" "gimple" } } */
+/* { dg-final { scan-tree-dump "temp4 = .DEFERRED_INIT \\((8|5), 1, \&\"temp4\"" "gimple" } } */