aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuliano Procida <gprocida@google.com>2023-11-13 18:12:36 +0000
committerGiuliano Procida <gprocida@google.com>2023-11-15 09:20:55 +0000
commit85724a7b086f2d56627b44bdf17eb19c034bf76f (patch)
tree8eb34e4f04380c1a2d6b1feb28212b73b6f155f9
parentc5e6c43098ccd87befbfafd2ba9f0207c35b0932 (diff)
downloadstg-85724a7b086f2d56627b44bdf17eb19c034bf76f.tar.gz
test cases: adjust types/char diff test to work with gcc -O2
This case is tweaked to avoid triggering a GCC bug where optimisation destroys some debug information. It suffices to ensure that all functions compile to different code. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112372 PiperOrigin-RevId: 582004246 Change-Id: Id514bcd03d13ba6eb43c030fffb537b7148cc4e8
-rw-r--r--test_cases/diff_tests/types/char.0.c14
-rw-r--r--test_cases/diff_tests/types/char.1.c14
2 files changed, 16 insertions, 12 deletions
diff --git a/test_cases/diff_tests/types/char.0.c b/test_cases/diff_tests/types/char.0.c
index ff5cef5..d24d0ab 100644
--- a/test_cases/diff_tests/types/char.0.c
+++ b/test_cases/diff_tests/types/char.0.c
@@ -1,6 +1,8 @@
-void u(char c) { (void) c; }
-void v(unsigned char c) { (void) c; }
-void w(signed char c) { (void) c; }
-void x(char c) { (void) c; }
-void y(unsigned char c) { (void) c; }
-void z(signed char c) { (void) c; }
+// tweaked due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112372
+void tweak(int);
+void u(char c) { (void)c; tweak(0); }
+void v(unsigned char c) { (void)c; tweak(1); }
+void w(signed char c) { (void)c; tweak(2); }
+void x(char c) { (void)c; tweak(3); }
+void y(unsigned char c) { (void)c; tweak(4); }
+void z(signed char c) { (void)c; tweak(5); }
diff --git a/test_cases/diff_tests/types/char.1.c b/test_cases/diff_tests/types/char.1.c
index a9291d0..8ab40a0 100644
--- a/test_cases/diff_tests/types/char.1.c
+++ b/test_cases/diff_tests/types/char.1.c
@@ -1,6 +1,8 @@
-void u(unsigned char c) { (void) c; }
-void v(signed char c) { (void) c; }
-void w(char c) { (void) c; }
-void x(signed char c) { (void) c; }
-void y(char c) { (void) c; }
-void z(unsigned char c) { (void) c; }
+// tweaked due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112372
+void tweak(int);
+void u(unsigned char c) { (void)c; tweak(0); }
+void v(signed char c) { (void)c; tweak(1); }
+void w(char c) { (void)c; tweak(2); }
+void x(signed char c) { (void)c; tweak(3); }
+void y(char c) { (void)c; tweak(4); }
+void z(unsigned char c) { (void)c; tweak(5); }