Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.201
 
1.202
 
MAIN:ragge:20080728100424
 
trees.c
_>20642064                 ecode(p);
 20652065 }
 20662066 
<> 2067+
20672068 #if defined(MULTIPASS)
 20682069 void    
 20692070 p2tree(NODE *p)
     
 !
21362137                 p2tree(p->n_right);
 21372138 }
 21382139 #else
<> 2140+static char *
  2141+sptostr(struct symtab *sp)
  2142+{
  2143+        char *cp = inlalloc(32);
  2144+        int n = sp->soffset;
  2145+        if (n < 0)
  2146+                n = -n;
  2147+        snprintf(cp, 32, LABFMT, n);
  2148+        return cp;
  2149+}
  2150+
21392151 void
 21402152 p2tree(NODE *p)
 21412153 {
     
 !
21562168                             q->sflags == SLBLNAME ||
 21572169 #endif
 21582170                             q->sclass == ILABEL) {
<>2159 -                                char *cp = (isinlining ?
 2160 -                                    permalloc(32) : tmpalloc(32));
 2161 -                                int n = q->soffset;
 2162 -                                if (n < 0)
 2163 -                                        n = -n;
 2164 -                                snprintf(cp, 32, LABFMT, n);
 2165 -                                p->n_name = cp;
  2171+                                p->n_name = sptostr(q);
21662172                         } else if (!kflag) {
 21672173                                 char *name = exname(q->soname);
 21682174                                 int n = strlen(name) + 1;
<>2169 -                                char *cp = (isinlining ?  permalloc(n) : tmpalloc(n));
  2175+                                char *cp = inlalloc(n);
  2176+
21702177                                 strlcpy(cp, name, n);
 21712178                                 p->n_name = cp;
 21722179                         } else
     
 !
21962203                 p->n_stsize = (tsize(STRTY, p->n_left->n_df,
 21972204                     p->n_left->n_sue)+SZCHAR-1)/SZCHAR;
 21982205                 p->n_stalign = talign(STRTY,p->n_left->n_sue)/SZCHAR;
<> 2206+                /* FALLTHROUGH */
  2207+        case CALL:
  2208+        case UCALL:
  2209+                if (callop(p->n_op) && p->n_left->n_op == ICON &&
  2210+                    (q = p->n_left->n_sp) != NULL && q->sclass == SNULL &&
  2211+                    (q->sflags & SINLINE)) {
  2212+                        /* call to inline ftns uses L-style labels */
  2213+                        p->n_left->n_name = sptostr(q);
  2214+                        if (ty == BITYPE)
  2215+                                p2tree(p->n_right);
  2216+                        return;
  2217+                }
21992218                 break;
 22002219 
 22012220         case XARG:
     
 !
22852304         else
 22862305                 sz = sizeof(struct interpass);
 22872306 
<>2288 -        ip = isinlining ? permalloc(sz) : tmpalloc(sz);
  2307+        ip = inlalloc(sz);
<_22892308         ip->type = type;
 22902309         ip->lineno = lineno;
 22912310         switch (type) {
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-08-21 02:23 +0200