[PATCH] Add testcase to show kernel issue got fixed by pr95237 [PR96192]

Sunil K Pandey skpgkp2@gmail.com
Fri Jul 24 21:08:41 GMT 2020


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 | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 gcc/testsuite/c-c++-common/pr96192-1.c

diff --git a/gcc/testsuite/c-c++-common/pr96192-1.c b/gcc/testsuite/c-c++-common/pr96192-1.c
new file mode 100644
index 00000000000..4d9be06a045
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/pr96192-1.c
@@ -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;
+}
-- 
2.25.4



More information about the Gcc-patches mailing list