OLD | NEW |
1 // Inferno utils/5l/pass.c | 1 // Inferno utils/5l/pass.c |
2 // http://code.google.com/p/inferno-os/source/browse/utils/5l/pass.c | 2 // http://code.google.com/p/inferno-os/source/browse/utils/5l/pass.c |
3 // | 3 // |
4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. | 4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. |
5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) | 5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) |
6 // Portions Copyright © 1997-1999 Vita Nuova Limited | 6 // Portions Copyright © 1997-1999 Vita Nuova Limited |
7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) | 7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) |
8 // Portions Copyright © 2004,2006 Bruce Ellis | 8 // Portions Copyright © 2004,2006 Bruce Ellis |
9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) | 9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) |
10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others | 10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 setarch(p); | 225 setarch(p); |
226 a = p->as; | 226 a = p->as; |
227 if(a == ATEXT) | 227 if(a == ATEXT) |
228 curtext = p; | 228 curtext = p; |
229 if(!curtext->from.sym->reachable) { | 229 if(!curtext->from.sym->reachable) { |
230 p = p->cond; | 230 p = p->cond; |
231 goto loop; | 231 goto loop; |
232 } | 232 } |
233 if(a == AB) { | 233 if(a == AB) { |
234 q = p->cond; | 234 q = p->cond; |
235 » » if(q != P) { | 235 » » if(q != P && q->as != ATEXT) { |
236 p->mark |= FOLL; | 236 p->mark |= FOLL; |
237 p = q; | 237 p = q; |
238 if(!(p->mark & FOLL)) | 238 if(!(p->mark & FOLL)) |
239 goto loop; | 239 goto loop; |
240 } | 240 } |
241 } | 241 } |
242 if(p->mark & FOLL) { | 242 if(p->mark & FOLL) { |
243 for(i=0,q=p; i<4; i++,q=q->link) { | 243 for(i=0,q=p; i<4; i++,q=q->link) { |
244 if(q == lastp) | 244 if(q == lastp) |
245 break; | 245 break; |
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
973 newdata(et, off, sizeof(int32), D_EXTERN); | 973 newdata(et, off, sizeof(int32), D_EXTERN); |
974 off += sizeof(int32); | 974 off += sizeof(int32); |
975 } | 975 } |
976 et->value = off; | 976 et->value = off; |
977 if(sv == 0) | 977 if(sv == 0) |
978 sv = 1; | 978 sv = 1; |
979 str->value = sv; | 979 str->value = sv; |
980 exports = ne; | 980 exports = ne; |
981 free(esyms); | 981 free(esyms); |
982 } | 982 } |
OLD | NEW |