comparison a09.c @ 46:ec9f494497e1

vdisk fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 20 Jul 2018 11:48:19 +0900
parents b8fa36c04ff7
children 51b437557f42
comparison
equal deleted inserted replaced
45:07c84761da6f 46:ec9f494497e1
69 int gline; 69 int gline;
70 int change; 70 int change;
71 struct longer *next; 71 struct longer *next;
72 } *lglist = 0; 72 } *lglist = 0;
73 73
74 void makelonger(int gl) {
75 for(struct longer *p=lglist;p;p=p->next) {
76 if (p->gline==gl) { // already fixed
77 p->change = 1;
78 return;
79 }
80 }
81 struct longer *p = (struct longer *)calloc(sizeof(struct longer *),1);
82 p->gline=gl;
83 p->next = lglist;
84 lglist = p;
85 }
86
87 int longer() {
88 for(struct longer *p=lglist;p;p=p->next) {
89 if (p->change == 0) return 1;
90 }
91 return 0;
92 }
93 74
94 struct oprecord{char * name; 75 struct oprecord{char * name;
95 unsigned char cat; 76 unsigned char cat;
96 unsigned short code;}; 77 unsigned short code;};
97 78
349 int errors; /* number of errors */ 330 int errors; /* number of errors */
350 char exprcat; /* category of expression being parsed, eg. 331 char exprcat; /* category of expression being parsed, eg.
351 label or constant, this is important when 332 label or constant, this is important when
352 generating relocatable object code. */ 333 generating relocatable object code. */
353 334
335 void makelonger(int gl) {
336 if (pass==1) return;
337 for(struct longer *p=lglist;p;p=p->next) {
338 if (p->gline==gl) { // already fixed
339 p->change = 1;
340 return;
341 }
342 }
343 struct longer *p = (struct longer *)calloc(sizeof(struct longer *),1);
344 p->gline=gl;
345 p->next = lglist;
346 lglist = p;
347 }
348
349 int longer() {
350 for(struct longer *p=lglist;p;p=p->next) {
351 if (p->change == 0) return 1;
352 }
353 return 0;
354 }
354 void generate() 355 void generate()
355 { 356 {
356 generating = 1; 357 generating = 1;
357 if (rmbmode) { 358 if (rmbmode) {
358 rmbcounter = loccounter; 359 rmbcounter = loccounter;