scc

Simple C99 Compiler
Log | Files | Refs | README | LICENSE

commit 5d10713e968041bbb85b19b5dc673d33b7d1ef7d
parent ba2ad29b2bf580b5b6318289488b1b18bfd81cc4
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Mon,  7 Sep 2015 19:53:45 +0200

Add basic test for integer constans

This test fails at this moment because overflow in constant castings
are not correctly handled.

Diffstat:
cc1/tests/test022.c | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+), 0 deletions(-)

diff --git a/cc1/tests/test022.c b/cc1/tests/test022.c @@ -0,0 +1,57 @@ + +/* +name: TEST022 +description: Basic test for int constants +comments: This test is done for z80 data types +output: +F1 +G1 F1 main +{ +- +A2 I i +A3 N u + A2 #I1 :I + A2 #IFFFF :I + A2 #IFFFF :I + A2 #IFFFF :I + A2 #IFFFF :I + A2 #I3 :I + A2 #I1 :I + A2 #I0 :I + A3 #N1 :N + A3 #NFFFF :N + A3 #NFFFF :N + A3 #NFFFF :N + A3 #NFFFF :N + A3 #N0 :N + A3 #N3 :N + A3 #N0 :N + y #I0 +} +*/ + +int +main(void) +{ + int i; + unsigned u; + + i = 1; + i = -1; + i = -1l; + i = -1u; + i = -1ll; + i = 32766 + 1 & 3; + i = (int) 32768 < 0; + i = -1u < 0; + + u = 1; + u = -1; + u = -1l; + u = -1u; + u = -1ll; + u = (unsigned) 32768 < 0; + u = 32766 + 1 & 3; + u = -1u < 0; + return 0; +}