diff options
author | Andrew Pinski <apinski@marvell.com> | 2020-01-02 20:27:25 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2020-01-02 12:27:25 -0800 |
commit | 45b6395b202b637cae76c73dce846e5eb1954870 (patch) | |
tree | ea847bb84eec0ffba4f010631885fc23e95422ea /gcc/testsuite/gcc.c-torture | |
parent | 4a08009efaaeddde930e20f2669fd542422eec31 (diff) | |
download | gcc-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.c | 63 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/bitfld-9.c | 63 |
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 (); +} |