Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.107
 
1.108
 
MAIN:ragge:20040530172805
 
trees.c
_>13981398                 else if( (mt1&MINT) && (mt2&MPTR) ) return( TYPR+PUN );
 13991399                 else if( (mt1&MPTR) && (mt2&MINT) ) return( TYPL+PUN );
 14001400                 else if( mt12 & MSTR ) return( NCVT+TYPL+OTHER );
<> 1401+                else if ((mt1&MINT) && (mt2&MENU)) return(NCVT+TYPL+TYMATCH);
  1402+                else if ((mt2&MINT) && (mt1&MENU)) return(NCVT+TYPR+TYMATCH);
14011403                 break;
 14021404 
 14031405         case ASSIGN:
     
 !
20402042                         printf("\n");
 20412043                 break;
 20422044 
<>2043 -        case STARG:
20442045         case STASG:
 20452046         case STCALL:
 20462047         case USTCALL:
     
 !
20552056                 printf("\t%d\t\n", talign(STRTY, p->n_left->n_sue));
 20562057                 break;
 20572058 
<> 2059+        case STARG:
  2060+                cerror("wrong STARG");
20582061         default:
 20592062                 printf"\n" );
 20602063         }
     
 !
20992102                 break;
 21002103 
 21012104         case STARG:
<> 2105+                cerror("wrong STARG");
  2106+        case FUNARG:
  2107+                p->n_name = "";
  2108+                if (p->n_type != STRTY)
  2109+                        break;
21022110         case STASG:
 21032111         case STCALL:
 21042112         case USTCALL:
     
 !
21302138         storecall(np);
 21312139         al = talign(np->n_type, np->n_sue);
 21322140         tsz = tsize(np->n_type, np->n_df, np->n_sue);
<> 2141+
21332142         if (tsz < al)
 21342143                 al = ALINT;
 21352144         SETOFF(tsz, al);
 21362145 
 21372146         if (p->n_op == CM) {
 21382147                 np = p->n_left;
<> 2148+                if (p->n_right->n_op == STARG) {
  2149+                        NODE *op = p;
  2150+                        p = p->n_right;
  2151+                        nfree(op);
  2152+                } else {
  2153+                        p->n_type = p->n_right->n_type;
  2154+                        p->n_left = p->n_right;
  2155+                }
21392156                 p->n_op = FUNARG;
<>2140 -                p->n_type = p->n_right->n_type;
 2141 -                p->n_left = p->n_right;
21422157                 p->n_sue = MKSUE(p->n_type & BTMASK);
 21432158                 p->n_rval = tsz;
 21442159                 p = clocal(p); /* deal with arg types */
 21452160                 tsz = p->n_rval;
<> 2161+                p2tree(p);
21462162                 send_passt(IP_NODE, p);
 21472163                 return storearg(np) + tsz;
 21482164         } else {
<>2149 -                p = block(FUNARG, p, NIL, p->n_type, 0,
 2150 -                    MKSUE(p->n_type & BTMASK));
  2165+                if (p->n_op != STARG)
  2166+                        p = block(FUNARG, p, NIL, p->n_type, 0,
  2167+                            MKSUE(p->n_type & BTMASK));
  2168+                else
  2169+                        p->n_op = FUNARG;
21512170                 p->n_rval = tsz;
 21522171                 p = clocal(p); /* deal with arg types */
 21532172                 tsz = p->n_rval;
<> 2173+                p2tree(p);
21542174                 send_passt(IP_NODE, p);
 21552175                 return tsz;
 21562176         }
     
 !
21932213                 fwalk(p, eprint, 0);
 21942214         }
 21952215 #endif
<>2196 -        p2tree(p);
21972216         storecall(p);
<> 2217+        p2tree(p);
<_21982218 #if !defined(MULTIPASS)
 21992219         send_passt(IP_NODE, p);
 22002220 #endif
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-09-02 13:33 +0200