Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.224
 
1.225
 
MAIN:ragge:20090110145016
 
trees.c
_>299299         if( actions & PTMATCH ) p = ptmatch(p);
 300300 
 301301         if( actions & OTHER ){
<> 302+                struct suedef *sue;
  303+
302304                 l = p->n_left;
 303305                 r = p->n_right;
 304306 
     
 !
317319                                 break;
 318320                         }
 319321 
<>320 -                        if ((sp = l->n_sue->sylnk) == NULL) {
  322+#define GETSUE(x, y)    for (x = y; x->suep; x = x->suep)
  323+
  324+                        /* find type sue */
  325+                        GETSUE(sue, l->n_sue);
  326+                        if ((sp = sue->suem) == NULL) {
321327                                 uerror("undefined struct or union");
 322328                                 break;
 323329                         }
     
 !
418424                          * the addresses of left and right */
 419425 
 420426                         {
<>421 -                                struct suedef *sue;
  427+                                struct suedef *sue2;
422428                                 TWORD t;
 423429                                 union dimfun *d;
 424430 
<>425 -                                if (l->n_sue->sylnk != r->n_sue->sylnk)
  431+                                GETSUE(sue, l->n_sue);
  432+                                GETSUE(sue2, r->n_sue);
  433+                                if (sue->suem != sue2->suem)
426434                                         uerror("assignment of different structures");
 427435 
 428436                                 r = buildtree(ADDROF, r, NIL);
     
 !
521529         for (; sp != NULL; sp = sp->snext) {
 522530                 if (sp->sname[0] == '*') {
 523531                         /* unnamed member, recurse down */
<>524 -                        if ((sp2 = findmember(sp->ssue->sylnk, s))) {
  532+                        if ((sp2 = findmember(sp->ssue->suem, s))) {
525533                                 sp3 = tmpalloc(sizeof (struct symtab));
 526534                                 *sp3 = *sp2;
 527535                                 sp3->soffset += sp->soffset;
     
 !
825833                 d1 = p->n_left->n_df;
 826834                 d2 = p->n_right->n_df;
 827835                 if (t1 == t2) {
<>828 -                        if (p->n_left->n_sue->sylnk != p->n_right->n_sue->sylnk)
  836+                        if (p->n_left->n_sue->suem != p->n_right->n_sue->suem)
829837                                 werror("illegal structure pointer combination");
 830838                         return;
 831839                 }
     
 !
19031911         o = p->n_op;
 19041912         ty = coptype(o);
 19051913         if (BTYPE(p->n_type) == ENUMTY) { /* fixup enum */
<>1906 -                MODTYPE(p->n_type, p->n_sue->sylnk->stype);
  1914+                MODTYPE(p->n_type, p->n_sue->suem->stype);
19071915                 /*
 19081916                  * XXX may fail if these are true:
 19091917                  * - variable-sized enums
     
 !
24362444                 return dope[op];
 24372445         switch (op) {
 24382446         case CLOP:
<>2439 -        case ATTRIB:
24402447         case STRING:
 24412448         case QUALIFIER:
 24422449         case CLASS:
     
 !
24502457         case COLON:
 24512458         case LB:
 24522459                 return BITYPE;
<> 2460+        case ATTRIB:
  2461+                return UTYPE;
<_24532462         case ANDAND:
 24542463         case OROR:
 24552464                 return BITYPE|LOGFLG;
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-10-31 22:34 +0100