Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.91
 
1.92
 
MAIN:ragge:20030801131203
 
pftn.c
_>173173 defid(NODE *q, int class)
 174174 {
 175175         struct symtab *p;
<>176 -        TWORD type;
 177 -        TWORD stp;
  176+        TWORD type, qual;
  177+        TWORD stp, stq;
178178         int scl;
 179179         union dimfun *dsym, *ddef;
 180180         int slev, temp;
     
 !
190190 #ifdef PCC_DEBUG
 191191         if (ddebug) {
 192192                 printf("defid(%s (%p), ", p->sname, p);
<>193 -                tprint(q->n_type);
  193+                tprint(q->n_type, q->n_qual);
194194                 printf(", %s, (%p,%p)), level %d\n", scnames(class),
 195195                     q->n_df, q->n_sue, blevel);
 196196         }
     
 !
199199         fixtype(q, class);
 200200 
 201201         type = q->n_type;
<> 202+        qual = q->n_qual;
202203         class = fixclass(class, type);
 203204 
 204205         stp = p->stype;
<> 206+        stq = p->squal;
205207         slev = p->slevel;
 206208 
 207209 #ifdef PCC_DEBUG
 208210         if (ddebug) {
 209211                 printf("        modified to ");
<>210 -                tprint(type);
  212+                tprint(type, qual);
211213                 printf(", %s\n", scnames(class));
 212214                 printf("        previous def'n: ");
<>213 -                tprint(stp);
  215+                tprint(stp, stq);
214216                 printf(", %s, (%p,%p)), level %d\n",
 215217                     scnames(p->sclass), p->sdf, p->ssue, slev);
 216218         }
     
 !
18631865 {
 18641866         NODE *l;
 18651867         int class = 0, adj, noun, sign;
<> 1868+        TWORD qual = 0;
18661869 
 18671870         adj = INT;      /* INT, LONG or SHORT */
 18681871         noun = UNDEF;   /* INT, CHAR or FLOAT */
 18691872         sign = 0;       /* 0, SIGNED or UNSIGNED */
 18701873 
 18711874         /* Remove initial QUALIFIERs */
 18721875         if (p && p->n_op == QUALIFIER) {
<> 1876+                qual = p->n_type == CONST ? CON : VOL;
18731877                 l = p->n_left;
 18741878                 nfree(p);
 18751879                 p = l;
     
 !
18851889 
 18861890         /* Remove more QUALIFIERs */
 18871891         if (p && p->n_op == QUALIFIER) {
<> 1892+                qual |= p->n_type == CONST ? CON : VOL;
18881893                 l = p->n_left;
 18891894                 nfree(p);
 18901895                 p = l;
     
 !
18961901                         p->n_type = UCHAR;
 18971902 #endif
 18981903                 p->n_lval = class;
<> 1904+                p->n_qual = qual >> TSHIFT;
18991905                 return p;
 19001906         }
 19011907 
 19021908         while (p != NIL) {
<>1903 -                if (p->n_op == QUALIFIER) /* Skip const/volatile */
  1909+                if (p->n_op == QUALIFIER) {
  1910+                        qual |= p->n_type == CONST ? CON : VOL;
19041911                         goto next;
<> 1912+                }
19051913                 if (p->n_op == CLASS) {
 19061914                         if (class != 0)
 19071915                                 uerror("too many storage classes");
     
 !
19631971                 noun += (UNSIGNED-INT);
 19641972 
 19651973         p = block(TYPE, NIL, NIL, noun, 0, 0);
<> 1974+        p->n_qual = qual >> TSHIFT;
<_19661975         if (strunem != 0)
 19671976                 class = strunem;
 19681977         p->n_lval = class;
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-29 01:15 +0200