Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 -emit-llvm %s  -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 
     38