Add testcase to show kernel issue got fixed by pr95237 [PR96192]
authorSunil K Pandey <skpgkp2@gmail.com>
Fri, 24 Jul 2020 21:08:41 +0000 (14:08 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 24 Jul 2020 21:17:44 +0000 (14:17 -0700)
This test case, extracted from PR 95645, was failing because alignment
of local long long variable got lowered from 8 bytes to 4 bytes in
adjust alignment pass, which triggered assert failure.

This test case passes now because PR 95237 fix only allows lowering of
alignment of local variables in the front end.  As a result, alignment
of local long long variable no longer gets lowered in adjust alignment
pass.

gcc/testsuite/ChangeLog:

PR target/96192
* c-c++-common/pr96192-1.c: New test.

gcc/testsuite/c-c++-common/pr96192-1.c [new file with mode: 0644]

diff --git a/gcc/testsuite/c-c++-common/pr96192-1.c b/gcc/testsuite/c-c++-common/pr96192-1.c
new file mode 100644 (file)
index 0000000..4d9be06
--- /dev/null
@@ -0,0 +1,16 @@
+/* { dg-do compile { target ia32 } } */
+/* { dg-options "-mpreferred-stack-boundary=2 -Os -w" } */
+
+int a;
+
+long long
+b (void)
+{
+}
+
+void
+c (void)
+{
+  if (b())
+    a = 1;
+}