Added unsigned bit-field test
authorceriel <none@none>
Wed, 15 Nov 1989 17:46:58 +0000 (17:46 +0000)
committerceriel <none@none>
Wed, 15 Nov 1989 17:46:58 +0000 (17:46 +0000)
lang/cem/ctest/ctgen/.distr
lang/cem/ctest/ctgen/bfu.cem.g [new file with mode: 0644]
lang/cem/ctest/ctgen/bfu.sed [new file with mode: 0644]

index 357c553..224da4c 100644 (file)
@@ -1,6 +1,8 @@
 OPS
 bf.cem.g
 bf.sed
+bfu.cem.g
+bfu.sed
 cel.cem.g
 cel.sed
 clu.cem.g
diff --git a/lang/cem/ctest/ctgen/bfu.cem.g b/lang/cem/ctest/ctgen/bfu.cem.g
new file mode 100644 (file)
index 0000000..05842e0
--- /dev/null
@@ -0,0 +1,111 @@
+bfs.bf1 + bfs.bf2
+bfs.bf1 - bfs.bf2
+bfs.bf1 / bfs.bf2
+bfs.bf1 % bfs.bf2
+bfs.bf1 * bfs.bf2
+bfs.bf1 & bfs.bf2
+bfs.bf1 | bfs.bf2
+bfs.bf1 ^ bfs.bf2
+bfs.bf1 || bfs.bf2
+bfs.bf1 && bfs.bf2
+bfs.bf1 << 1
+bfs.bf1 >> 1
+-bfs.bf1 
+!bfs.bf1 
+~bfs.bf1 
+bfs.bf1 == bfs.bf2
+bfs.bf1 != bfs.bf2
+bfs.bf1 <= bfs.bf2
+bfs.bf1 >= bfs.bf2
+bfs.bf1 < bfs.bf2
+bfs.bf1 > bfs.bf2
+bfs.bf1 ? bfs.bf1 : bfs.bf2
+bfs.bf3 = bfs.bf1  1
+bfs.bf3 += bfs.bf1  0
+bfs.bf3 -= bfs.bf1  254
+bfs.bf3 /= bfs.bf1  255
+bfs.bf3 %= bfs.bf1  0
+bfs.bf3 *= bfs.bf1  255
+bfs.bf3 &= bfs.bf1  1
+bfs.bf3 |= bfs.bf1  255
+bfs.bf3 ^= bfs.bf1  254
+bfs.bf3 <<= 1 254
+bfs.bf3 >>= 1 127
+bfs.bf3 ++ 0
+bfs.bf3 -- 254
+-- bfs.bf3 254
+++ bfs.bf3 0
+bfs.bf4 = ( bfs.bf1 + bfs.bf2 ) 9
+bfs.bf4 = ( bfs.bf1 - bfs.bf2 ) 65529
+bfs.bf4 = ( bfs.bf1 / bfs.bf2 ) 0
+bfs.bf4 = ( bfs.bf1 % bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 * bfs.bf2 ) 8
+bfs.bf4 = ( bfs.bf1 & bfs.bf2 ) 0
+bfs.bf4 = ( bfs.bf1 | bfs.bf2 ) 9
+bfs.bf4 = ( bfs.bf1 ^ bfs.bf2 ) 9
+bfs.bf4 = ( bfs.bf1 || bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 && bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 << 1 ) 2
+bfs.bf4 = ( bfs.bf1 >> 1 ) 0
+bfs.bf4 = ( -bfs.bf1  ) 65535
+bfs.bf4 = ( !bfs.bf1  ) 0
+bfs.bf4 = ( ~bfs.bf1  ) 65534
+bfs.bf4 = ( bfs.bf1 == bfs.bf2 ) 0
+bfs.bf4 = ( bfs.bf1 != bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 <= bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 >= bfs.bf2 ) 0
+bfs.bf4 = ( bfs.bf1 < bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 > bfs.bf2 ) 0
+bfs.bf4 = ( bfs.bf1 ? bfs.bf1 : bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf3 = bfs.bf1  ) 1 1
+bfs.bf4 = ( bfs.bf3 += bfs.bf1  ) 0 0
+bfs.bf4 = ( bfs.bf3 -= bfs.bf1  ) 254 254
+bfs.bf4 = ( bfs.bf3 /= bfs.bf1  ) 255 255
+bfs.bf4 = ( bfs.bf3 %= bfs.bf1  ) 0 0
+bfs.bf4 = ( bfs.bf3 *= bfs.bf1  ) 255 255
+bfs.bf4 = ( bfs.bf3 &= bfs.bf1  ) 1 1
+bfs.bf4 = ( bfs.bf3 |= bfs.bf1  ) 255 255
+bfs.bf4 = ( bfs.bf3 ^= bfs.bf1  ) 254 254
+bfs.bf4 = ( bfs.bf3 <<= 1 ) 254 254
+bfs.bf4 = ( bfs.bf3 >>= 1 ) 127 127
+bfs.bf4 = ( bfs.bf3 ++ ) 0 255
+bfs.bf4 = ( bfs.bf3 -- ) 254 255
+bfs.bf4 = ( -- bfs.bf3 ) 254 254
+bfs.bf4 = ( ++ bfs.bf3 ) 0 0
+yes if ( bfs.bf1 + bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 - bfs.bf2 ) yes() ; else no()
+no if ( bfs.bf1 / bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 % bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 * bfs.bf2 ) yes() ; else no()
+no if ( bfs.bf1 & bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 | bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 ^ bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 || bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 && bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 << 1 ) yes() ; else no()
+no if ( bfs.bf1 >> 1 ) yes() ; else no()
+yes if ( -bfs.bf1  ) yes() ; else no()
+no if ( !bfs.bf1  ) yes() ; else no()
+yes if ( ~bfs.bf1  ) yes() ; else no()
+no if ( bfs.bf1 == bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 != bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 <= bfs.bf2 ) yes() ; else no()
+no if ( bfs.bf1 >= bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 < bfs.bf2 ) yes() ; else no()
+no if ( bfs.bf1 > bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 ? bfs.bf1 : bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf3 = bfs.bf1  ) yes() ; else no() 1
+no if ( bfs.bf3 += bfs.bf1  ) yes() ; else no() 0
+yes if ( bfs.bf3 -= bfs.bf1  ) yes() ; else no() 254
+yes if ( bfs.bf3 /= bfs.bf1  ) yes() ; else no() 255
+no if ( bfs.bf3 %= bfs.bf1  ) yes() ; else no() 0
+yes if ( bfs.bf3 *= bfs.bf1  ) yes() ; else no() 255
+yes if ( bfs.bf3 &= bfs.bf1  ) yes() ; else no() 1
+yes if ( bfs.bf3 |= bfs.bf1  ) yes() ; else no() 255
+yes if ( bfs.bf3 ^= bfs.bf1  ) yes() ; else no() 254
+yes if ( bfs.bf3 <<= 1 ) yes() ; else no() 254
+yes if ( bfs.bf3 >>= 1 ) yes() ; else no() 127
+yes if ( bfs.bf3 ++ ) yes() ; else no() 0
+yes if ( bfs.bf3 -- ) yes() ; else no() 254
+yes if ( -- bfs.bf3 ) yes() ; else no() 254
+no if ( ++ bfs.bf3 ) yes() ; else no() 0
diff --git a/lang/cem/ctest/ctgen/bfu.sed b/lang/cem/ctest/ctgen/bfu.sed
new file mode 100644 (file)
index 0000000..b17f65e
--- /dev/null
@@ -0,0 +1,26 @@
+/ISTART/c\
+/* test bit fields */\
+struct bfs {\
+       unsigned int bf1:1 ;\
+       unsigned int bf2:4 ;\
+       unsigned int bf3:8 ;\
+       unsigned int bf4:16 ;\
+} bfs ;
+s/FN/main/
+/LSTART/c\
+       bfs.bf1=1 ; bfs.bf2=8 ;
+/[XYZS]/s/.*/& ; printf("%s#","&"@) ;/
+/Z1/s/#/ %d&/
+/Z1/s/@/, Z1&/
+/Z2/s/#/ %d&/
+/Z2/s/@/, Z2&/
+/Z1/s/^/Z1 = 255 ; /
+/Z2/s/^/Z2 = 3 ; /
+/[XYZS]/s/^/   /
+s/X/bfs.bf1/g
+s/Y/bfs.bf2/g
+s/S/1/g
+s/Z1/bfs.bf3/g
+s/Z2/bfs.bf4/g
+s/#/\\n/
+s/@//