Trying that again.
[oota-llvm.git] / test / CFrontend / 2002-02-14-EntryNodePreds.c
1 // RUN: %llvmgcc -S %s -o - | llvm-as -f -o /dev/null
2
3 /* GCC Used to generate code that contained a branch to the entry node of 
4  * the do_merge function.  This is illegal LLVM code.  To fix this, GCC now
5  * inserts an entry node regardless of whether or not it has to insert allocas.
6  */
7
8 struct edge_rec
9 {
10   struct VERTEX *v;
11   struct edge_rec *next;
12   int wasseen;
13   int more_data;
14 };
15
16 typedef struct edge_rec *QUAD_EDGE;
17
18 typedef struct {
19   QUAD_EDGE left, right;
20 } EDGE_PAIR;
21
22 struct EDGE_STACK {
23     int ptr;
24     QUAD_EDGE *elts;
25     int stack_size;
26 };
27
28 int do_merge(QUAD_EDGE ldo, QUAD_EDGE rdo) {
29   int lvalid;
30   QUAD_EDGE basel,rcand;
31   while (1) {
32     if (!lvalid) {
33       return (int)basel->next;
34     }
35   }
36 }
37