ref: d142f56db7f355c907d9bf6522b229d174c239e2
parent: bcb57e195084cc997b8540b032c37c41d994d3b0
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Fri Jan 8 12:49:41 EST 2016
Add tests for commit bcb57e1
--- a/cc1/tests/test041.c
+++ b/cc1/tests/test041.c
@@ -2,30 +2,38 @@
name: TEST041
description: Test for bug parsing ternary operators
output:
-test041.c:36: error: type mismatch in conditional expression
+test041.c:48: 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
+A5 P q
+A7 P s
+A8 P p
+S10 foo
+M11 I i
+A12 S10 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
+ A8 A3 #I0 !I #P0 #P0 ?P :P
+ A8 A3 #I0 !I #P0 #P0 ?P :P
+ A8 A3 #I0 !I #P0 #P0 ?P :P
+ A5 A3 #I0 !I #P0 A8 ?P :P
+ A5 A3 #I0 !I A8 #P0 ?P :P
+ A5 A3 #I0 !I A5 #P0 ?P :P
+ A5 A3 #I0 !I #P0 A5 ?P :P
+test041.c:48: error: incompatible types when assigning
+test041.c:49: error: used struct/union type value where scalar is required
+test041.c:50: warning: 'i' defined but not used
+test041.c:50: warning: 'foo' defined but not used
+test041.c:50: warning: 's' defined but not used
*/
-
+
int
main(void)
{
- int i;
+ int i, *q;
+ char *s;
void *p;
struct foo {int i;} foo;
@@ -33,6 +41,10 @@
p = i ? (void *) 0 : 0;
p = i ? 0 : (void *) 0;
p = i ? 0 : (const void *) 0;
+ q = i ? 0 : p;
+ q = i ? p : 0;
+ q = i ? q : 0;
+ q = i ? 0 : q;
p = i ? 2 : p;
foo ? 1 : 2;
}