aboutsummaryrefslogtreecommitdiff
path: root/tests/tcctest.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2012-04-15 01:06:46 +0200
committerMichael Matz <matz@suse.de>2012-04-18 20:57:13 +0200
commit5c0a2366a3bb5bdeb3b3617389d4584375d5bfbc (patch)
treea4c54ec32646daf3b3bb5a947a40299713d45563 /tests/tcctest.c
parent6471ec0a2bd523edd4bbc79277a33d0b853940fa (diff)
downloadtinycc-5c0a2366a3bb5bdeb3b3617389d4584375d5bfbc.tar.gz
tinycc-5c0a2366a3bb5bdeb3b3617389d4584375d5bfbc.tar.bz2
Fix bitfield loads into char/short.
Removes a premature optimization of char/short loads rewriting the source type. It did so also for bitfield loads, thereby removing all the shifts/maskings.
Diffstat (limited to 'tests/tcctest.c')
-rw-r--r--tests/tcctest.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/tcctest.c b/tests/tcctest.c
index 723adc1..afb0825 100644
--- a/tests/tcctest.c
+++ b/tests/tcctest.c
@@ -1461,6 +1461,8 @@ void c99_bool_test(void)
void bitfield_test(void)
{
int a;
+ short sa;
+ unsigned char ca;
struct sbf1 {
int f1 : 3;
int : 2;
@@ -1482,6 +1484,9 @@ void bitfield_test(void)
st1.f5++;
printf("%d %d %d %d %d\n",
st1.f1, st1.f2, st1.f3, st1.f4, st1.f5);
+ sa = st1.f5;
+ ca = st1.f5;
+ printf("%d %d\n", sa, ca);
st1.f1 = 7;
if (st1.f1 == -1)