Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.92
 
1.93
 
MAIN:ragge:20030801134444
 
pftn.c
_>143143         struct  suedef *in_sue;
 144144         union   dimfun *in_df;  /* dimoff/protos */
 145145         TWORD   in_t;           /* type */
<> 146+        TWORD   in_q;           /* qualifier */
146147         struct  symtab *in_sym; /* stab index */
 147148         int     in_fl;  /* flag which says if this level is controlled by {} */
 148149         OFFSZ   in_off;         /* offset of the beginning of this level */
     
 !
161162 static void dynalloc(struct symtab *p, int *poff);
 162163 void inforce(OFFSZ n);
 163164 void vfdalign(int n);
<>164 -static void instk(struct symtab *p, TWORD t, union dimfun *d,
  165+static void instk(struct symtab *p, TWORD t, TWORD q, union dimfun *d,
165166     struct suedef *, OFFSZ off);
 166167 void gotscal(void);
 167168 static void ssave(struct symtab *);
     
 !
182183         if (q == NIL)
 183184                 return/* an error was detected */
 184185 
<>185 -//      if (q < node || q >= &node[TREESZ])
 186 -//              cerror("defid call: q %p", q);
 187 -
188186         p = q->n_sp;
 189187 
 190188 #ifdef PCC_DEBUG
     
 !
393391                 printf("        new entry made\n");
 394392 #endif
 395393         p->stype = type;
<> 394+        p->squal = qual;
396395         p->sclass = class;
 397396         p->slevel = blevel;
 398397         p->soffset = NOOFFSET;
     
 !
11341133 
 11351134         pstk = 0;
 11361135 
<>1137 -        instk(p, p->stype, p->sdf, p->ssue, inoff);
  1136+        instk(p, p->stype, p->squal, p->sdf, p->ssue, inoff);
11381137 
 11391138 }
 11401139 
 11411140 /*
 11421141  * make a new entry on the parameter stack to initialize p
 11431142  */
 11441143 void
<>1145 -instk(struct symtab *p, TWORD t, union dimfun *d, struct suedef *sue, OFFSZ off)
  1144+instk(struct symtab *p, TWORD t, TWORD q,
  1145+    union dimfun *d, struct suedef *sue, OFFSZ off)
11461146 {
 11471147         struct instk *sp;
 11481148 
 11491149         for (;;) {
 11501150 #ifdef PCC_DEBUG
 11511151                 if (idebug)
<>1152 -                        printf("instk((%p, %o,%p,%p, %lld)\n",
 1153 -                            p, t, d, sue, (long long)off);
  1152+                        printf("instk((%p, %x, %x, %p,%p, %lld)\n",
  1153+                            p, t, q, d, sue, (long long)off);
11541154 #endif
 11551155 
 11561156                 /* save information on the stack */
     
 !
11611161                 pstk->in_fl = 0;        /* { flag */
 11621162                 pstk->in_sym = p;
 11631163                 pstk->in_t = t;
<> 1164+                pstk->in_q = q;
11641165                 pstk->in_df = d;
 11651166                 pstk->in_sue = sue;
 11661167                 pstk->in_n = 0/* number seen */
     
 !
11851186 
 11861187                 if (ISARY(t)) {
 11871188                         t = DECREF(t);
<> 1189+                        q = DECREF(q);
11881190                         ++d;
 11891191                         continue;
 11901192                 } else if (t == STRTY || t == UNIONTY) {
     
 !
12011203                                 cerror("insane %s member list",
 12021204                                     t == STRTY ? "structure" : "union");
 12031205                         t = p->stype;
<> 1206+                        q = p->squal;
12041207                         d = p->sdf;
 12051208                         sue = p->ssue;
 12061209                         off += p->soffset;
     
 !
14501453         inforce( pstk->in_off );
 14511454 
 14521455         u = block(NAME, NIL,NIL, t, d, sue);
<> 1456+        u->n_qual = pstk->in_q;
14531457         p = buildtree( ASSIGN, u, p );
 14541458         nfree(p->n_left);
 14551459         p->n_left = p->n_right;
     
 !
15011505                                 continue;
 15021506 
 15031507                         /* otherwise, put next element on the stack */
<>1504 -                        instk(p, p->stype, p->sdf, p->ssue,
  1508+                        instk(p, p->stype, p->squal, p->sdf, p->ssue,
15051509                             p->soffset + pstk->in_off);
 15061510                         return;
 15071511                 } else if( ISARY(t) ){
     
 !
15121516                         /* put the new element onto the stack */
 15131517 
 15141518                         temp = pstk->in_sz;
<>1515 -                        instk(pstk->in_sym, (TWORD)DECREF(pstk->in_t),
  1519+                        instk(pstk->in_sym, DECREF(pstk->in_t), DECREF(pstk->in_q),
15161520                             pstk->in_df+1, pstk->in_sue, pstk->in_off+n*temp);
 15171521                         return;
 15181522                 } else if (ISFTN(t))
     
 !
20222026 #endif
 20232027 
 20242028         idp->n_type = typ->n_type;
<> 2029+        idp->n_qual = typ->n_qual;
<_20252030 
 20262031         tylkp = &tylnk;
 20272032         tylkp->next = NULL;
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-22 00:11 +0200