[hackers] [scc] Add tests for ugly ternary operator || Roberto E. Vargas Caballero

From: <git_AT_suckless.org>
Date: Fri, 8 Jan 2016 13:14:00 +0100 (CET)

commit b3a6d0e78452e23b9d2044454aec454d39631263
Author: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
AuthorDate: Fri Jan 8 11:19:37 2016 +0100
Commit: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
CommitDate: Fri Jan 8 11:22:28 2016 +0100

    Add tests for ugly ternary operator

diff --git a/cc1/tests/test041.c b/cc1/tests/test041.c
new file mode 100644
index 0000000..fc2ba55
--- /dev/null
+++ b/cc1/tests/test041.c
_AT_@ -0,0 +1,39 @@
+/*
+name: TEST041
+description: Test for bug parsing ternary operators
+output:
+test041.c:36: error: type mismatch in conditional expression
+F1 I
+G2 F1 main
+{
+\
+A3 I i
+A4 P p
+S6 foo
+M7 I i
+A8 S6 foo
+ A3 A3 #I0 !I #W0 #W0 ?W gI :I
+ A4 A3 #I0 !I #P0 #P0 ?P :P
+ A4 A3 #I0 !I #P0 #P0 ?P :P
+ A4 A3 #I0 !I #P0 #P0 ?P :P
+test041.c:36: error: incompatible types when assigning
+test041.c:37: error: used struct/union type value where scalar is required
+test041.c:38: warning: 'i' defined but not used
+test041.c:38: warning: 'foo' defined but not used
+*/
+
+int
+main(void)
+{
+ int i;
+ void *p;
+ struct foo {int i;} foo;
+
+ i = i ? 0 : 0l;
+ p = i ? (void *) 0 : 0;
+ p = i ? 0 : (void *) 0;
+ p = i ? 0 : (const void *) 0;
+ p = i ? 2 : p;
+ foo ? 1 : 2;
+}
+
Received on Fri Jan 08 2016 - 13:14:00 CET

This archive was generated by hypermail 2.3.0 : Fri Jan 08 2016 - 13:25:07 CET