arrays can now be public variables
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40132
This commit is contained in:
		
							parent
							
								
									0196df3cc9
								
							
						
					
					
						commit
						4f5f8dced9
					
				@ -1678,8 +1678,10 @@ static void declglb(char *firstname,int firsttag,int fpublic,int fstatic,int fst
 | 
				
			|||||||
        if (size > INT_MAX)
 | 
					        if (size > INT_MAX)
 | 
				
			||||||
          error(105);                   /* overflow, exceeding capacity */
 | 
					          error(105);                   /* overflow, exceeding capacity */
 | 
				
			||||||
      #endif
 | 
					      #endif
 | 
				
			||||||
 | 
					#if 0	/* We don't actually care */
 | 
				
			||||||
      if (ispublic)
 | 
					      if (ispublic)
 | 
				
			||||||
        error(56,name);                 /* arrays cannot be public */
 | 
					        error(56,name);                 /* arrays cannot be public */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
      dim[numdim++]=(int)size;
 | 
					      dim[numdim++]=(int)size;
 | 
				
			||||||
    } /* while */
 | 
					    } /* while */
 | 
				
			||||||
    assert(sc_curstates==0);
 | 
					    assert(sc_curstates==0);
 | 
				
			||||||
@ -1857,7 +1859,7 @@ static void declglb(char *firstname,int firsttag,int fpublic,int fstatic,int fst
 | 
				
			|||||||
    assert(sym!=NULL);
 | 
					    assert(sym!=NULL);
 | 
				
			||||||
    sc_curstates=0;
 | 
					    sc_curstates=0;
 | 
				
			||||||
    if (ispublic)
 | 
					    if (ispublic)
 | 
				
			||||||
      sym->usage|=uPUBLIC;
 | 
					      sym->usage|=uPUBLIC|uREAD;
 | 
				
			||||||
    if (fconst)
 | 
					    if (fconst)
 | 
				
			||||||
      sym->usage|=uCONST;
 | 
					      sym->usage|=uCONST;
 | 
				
			||||||
    if (fstock)
 | 
					    if (fstock)
 | 
				
			||||||
 | 
				
			|||||||
@ -713,7 +713,7 @@ SC_FUNC int assemble(FILE *fout,FILE *fin)
 | 
				
			|||||||
        assert(sym->vclass==sGLOBAL);
 | 
					        assert(sym->vclass==sGLOBAL);
 | 
				
			||||||
        mainaddr=sym->addr;
 | 
					        mainaddr=sym->addr;
 | 
				
			||||||
      } /* if */
 | 
					      } /* if */
 | 
				
			||||||
    } else if (sym->ident==iVARIABLE) {
 | 
					    } else if (sym->ident==iVARIABLE || sym->ident == iARRAY || sym->ident == iREFARRAY) {
 | 
				
			||||||
      if ((sym->usage & uPUBLIC)!=0 && (sym->usage & (uREAD | uWRITTEN))!=0)
 | 
					      if ((sym->usage & uPUBLIC)!=0 && (sym->usage & (uREAD | uWRITTEN))!=0)
 | 
				
			||||||
        match=++numpubvars;
 | 
					        match=++numpubvars;
 | 
				
			||||||
    } /* if */
 | 
					    } /* if */
 | 
				
			||||||
@ -891,7 +891,8 @@ SC_FUNC int assemble(FILE *fout,FILE *fin)
 | 
				
			|||||||
  /* write the public variables table */
 | 
					  /* write the public variables table */
 | 
				
			||||||
  count=0;
 | 
					  count=0;
 | 
				
			||||||
  for (sym=glbtab.next; sym!=NULL; sym=sym->next) {
 | 
					  for (sym=glbtab.next; sym!=NULL; sym=sym->next) {
 | 
				
			||||||
    if (sym->ident==iVARIABLE && (sym->usage & uPUBLIC)!=0 && (sym->usage & (uREAD | uWRITTEN))!=0) {
 | 
					    if ((sym->ident==iVARIABLE || sym->ident==iARRAY || sym->ident==iREFARRAY)
 | 
				
			||||||
 | 
					        && (sym->usage & uPUBLIC)!=0 && (sym->usage & (uREAD | uWRITTEN))!=0) {
 | 
				
			||||||
      assert((sym->usage & uDEFINE)!=0);
 | 
					      assert((sym->usage & uDEFINE)!=0);
 | 
				
			||||||
      assert(sym->vclass==sGLOBAL);
 | 
					      assert(sym->vclass==sGLOBAL);
 | 
				
			||||||
      func.address=sym->addr;
 | 
					      func.address=sym->addr;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user