Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.346
 
1.347
 
MAIN:ragge:20120710122026
 
pftn.c
_>130130 static NODE *mkcmplx(NODE *p, TWORD dt);
 131131 extern int fun_inline;
 132132 
<> 133+void
  134+defid(NODE *q, int class)
  135+{
  136+        defid2(q, class, 0);
  137+}
  138+
133139 /*
 134140  * Declaration of an identifier.  Handles redeclarations, hiding,
 135141  * incomplete types and forward declarations.
     
 !
140146  */
 141147 
 142148 void
<>143 -defid(NODE *q, int class)
  149+defid2(NODE *q, int class, char *astr)
144150 {
 145151         struct attr *ap;
 146152         struct symtab *p;
     
 !
160166 
 161167 #ifdef PCC_DEBUG
 162168         if (ddebug) {
<>163 -                printf("defid(%s (%p), ", p->sname, p);
  169+                printf("defid(%s '%s'(%p), ", p->sname, p->soname , p);
164170                 tprint(stdout, q->n_type, q->n_qual);
 165171                 printf(", %s, (%p)), level %d\n\t", scnames(class),
 166172                     q->n_df, blevel);
     
 !
284290         switch(class) {
 285291 
 286292         case EXTERN:
<>287 -                if (pragma_renamed)
 288 -                        p->soname = pragma_renamed;
 289 -                pragma_renamed = NULL;
  293+                if (astr)
  294+                        p->soname = astr;
290295                 switch( scl ){
 291296                 case STATIC:
 292297                 case USTATIC:
     
 !
404409         } else switch (class) {
 405410 
 406411         case REGISTER:
<>407 -                cerror("register var");
 408 -
  412+                if (astr != NULL)
  413+                        werror("no register assignment (yet)");
  414+                /* FALLTHROUGH */
409415         case AUTO:
 410416                 if (isdyn(p)) {
 411417                         p->sflags |= SDYNARRAY;
     
 !
423429         case EXTDEF:
 424430         case EXTERN:
 425431                 p->soffset = getlab();
<>426 -                if (pragma_renamed)
 427 -                        p->soname = pragma_renamed;
 428 -                pragma_renamed = NULL;
  432+                if (astr)
  433+                        p->soname = astr;
429434                 break;
 430435 
 431436         case MOU:
     
 !
15481553         }
 15491554 }
 15501555 
<> 1556+void
  1557+nidcl(NODE *p, int class)
  1558+{
  1559+        nidcl2(p, class, 0);
  1560+}
  1561+
15511562 /*
 15521563  * handle unitialized declarations assumed to be not functions:
 15531564  * int a;
 15541565  * extern int a;
 15551566  * static int a;
 15561567  */
 15571568 void
<>1558 -nidcl(NODE *p, int class)
  1569+nidcl2(NODE *p, int class, char *astr)
15591570 {
 15601571         struct symtab *sp;
 15611572         int commflag = 0;
     
 !
15701581                         commflag = 1, class = EXTERN;
 15711582         }
 15721583 
<>1573 -        defid(p, class);
  1584+        defid2(p, class, astr);
15741585 
 15751586         sp = p->n_sp;
 15761587         /* check if forward decl */
     
 !
26602671                 if (blevel == 1)
 26612672                         return(PARAM);
 26622673                 else
<>2663 -                        return(AUTO);
  2674+                        return(REGISTER);
<_26642675 
 26652676         case AUTO:
 26662677                 if( blevel < 2 ) uerror( "illegal ULABEL 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-20 14:41 +0200