aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2020-01-02 20:27:25 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2020-01-02 12:27:25 -0800
commit45b6395b202b637cae76c73dce846e5eb1954870 (patch)
treeea847bb84eec0ffba4f010631885fc23e95422ea /gcc/testsuite/gcc.c-torture
parent4a08009efaaeddde930e20f2669fd542422eec31 (diff)
downloadgcc-45b6395b202b637cae76c73dce846e5eb1954870.zip
gcc-45b6395b202b637cae76c73dce846e5eb1954870.tar.gz
gcc-45b6395b202b637cae76c73dce846e5eb1954870.tar.bz2
Add 1bit bit-field testcases.
2020-01-02 Andrew Pinski <apinski@marvell.com> * gcc.c-torture/execute/bitfld-8.c: New testcase. * gcc.c-torture/execute/bitfld-9.c: New testcase. From-SVN: r279846
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/bitfld-8.c63
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/bitfld-9.c63
2 files changed, 126 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/bitfld-8.c b/gcc/testsuite/gcc.c-torture/execute/bitfld-8.c
new file mode 100644
index 0000000..0a6f7c7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/bitfld-8.c
@@ -0,0 +1,63 @@
+struct mouse_button_str {
+ unsigned char left : 1;
+ unsigned char right : 1;
+ unsigned char middle : 1;
+ } button;
+
+static char fct (struct mouse_button_str newbutton) __attribute__ ((__noipa__));
+static char
+fct (struct mouse_button_str newbutton)
+{
+ char l = newbutton.left;
+ char r = newbutton.right;
+ char m = newbutton.middle;
+ return l || r || m;
+}
+
+int main(void)
+{
+ struct mouse_button_str newbutton1;
+ newbutton1.left = 1;
+ newbutton1.middle = 1;
+ newbutton1.right = 1;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+
+ newbutton1.left = 0;
+ newbutton1.middle = 1;
+ newbutton1.right = 1;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 1;
+ newbutton1.middle = 0;
+ newbutton1.right = 1;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 1;
+ newbutton1.middle = 1;
+ newbutton1.right = 0;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+
+
+ newbutton1.left = 1;
+ newbutton1.middle = 0;
+ newbutton1.right = 0;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 0;
+ newbutton1.middle = 1;
+ newbutton1.right = 0;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 0;
+ newbutton1.middle = 0;
+ newbutton1.right = 1;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 0;
+ newbutton1.middle = 0;
+ newbutton1.right = 0;
+ if (fct (newbutton1))
+ __builtin_abort ();
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.c-torture/execute/bitfld-9.c b/gcc/testsuite/gcc.c-torture/execute/bitfld-9.c
new file mode 100644
index 0000000..4353a56
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/bitfld-9.c
@@ -0,0 +1,63 @@
+struct mouse_button_str {
+ unsigned char left : 1;
+ unsigned char right : 1;
+ unsigned char middle : 1;
+ } button;
+
+static char fct (struct mouse_button_str newbutton) __attribute__ ((__noipa__));
+static char
+fct (struct mouse_button_str newbutton)
+{
+ char l = newbutton.left;
+ char r = newbutton.right;
+ char m = newbutton.middle;
+ return l && r && m;
+}
+
+int main(void)
+{
+ struct mouse_button_str newbutton1;
+ newbutton1.left = 1;
+ newbutton1.middle = 1;
+ newbutton1.right = 1;
+ if (!fct (newbutton1))
+ __builtin_abort ();
+
+ newbutton1.left = 0;
+ newbutton1.middle = 1;
+ newbutton1.right = 1;
+ if (fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 1;
+ newbutton1.middle = 0;
+ newbutton1.right = 1;
+ if (fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 1;
+ newbutton1.middle = 1;
+ newbutton1.right = 0;
+ if (fct (newbutton1))
+ __builtin_abort ();
+
+
+ newbutton1.left = 1;
+ newbutton1.middle = 0;
+ newbutton1.right = 0;
+ if (fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 0;
+ newbutton1.middle = 1;
+ newbutton1.right = 0;
+ if (fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 0;
+ newbutton1.middle = 0;
+ newbutton1.right = 1;
+ if (fct (newbutton1))
+ __builtin_abort ();
+ newbutton1.left = 0;
+ newbutton1.middle = 0;
+ newbutton1.right = 0;
+ if (fct (newbutton1))
+ __builtin_abort ();
+}