Left: | ||
Right: |
OLD | NEW |
---|---|
1 // Inferno utils/5l/obj.c | 1 // Inferno utils/5l/obj.c |
2 // http://code.google.com/p/inferno-os/source/browse/utils/5l/obj.c | 2 // http://code.google.com/p/inferno-os/source/browse/utils/5l/obj.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 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
620 cursym->locals = p->to.offset; | 620 cursym->locals = p->to.offset; |
621 pc++; | 621 pc++; |
622 break; | 622 break; |
623 | 623 |
624 case ATYPE: | 624 case ATYPE: |
625 if(skip) | 625 if(skip) |
626 goto casedef; | 626 goto casedef; |
627 pc++; | 627 pc++; |
628 goto loop; | 628 goto loop; |
629 | 629 |
630 case ANPTRS: | |
631 if(skip) | |
632 goto casdef; | |
iant
2013/05/22 00:41:00
s/casdef/casedef/
cshapiro1
2013/05/22 06:35:21
Done. I will submit a clean-up after this change.
| |
633 cursym->nptrs = p->to.offset; | |
634 cursym->ptrs = mal(cursym->nptrs*sizeof(*cursym->ptrs)); | |
635 pc++; | |
636 goto loop; | |
637 | |
638 case APTRS: | |
639 if(skip) | |
640 goto casdef; | |
iant
2013/05/22 00:41:00
s/casdef/casedef/
cshapiro1
2013/05/22 06:35:21
Ditto.
| |
641 cursym->ptrs[p->from.offset] = p->to.offset; | |
iant
2013/05/22 00:41:00
In general we want to avoid crashing if somebody s
cshapiro1
2013/05/22 06:35:21
I wrote an expanded set of checks that addresses t
| |
642 pc++; | |
643 goto loop; | |
644 | |
630 case ATEXT: | 645 case ATEXT: |
631 if(cursym != nil && cursym->text) { | 646 if(cursym != nil && cursym->text) { |
632 histtoauto(); | 647 histtoauto(); |
633 cursym->autom = curauto; | 648 cursym->autom = curauto; |
634 curauto = 0; | 649 curauto = 0; |
635 } | 650 } |
636 s = p->from.sym; | 651 s = p->from.sym; |
637 if(s == S) { | 652 if(s == S) { |
638 diag("TEXT must have a name\n%P", p); | 653 diag("TEXT must have a name\n%P", p); |
639 errorexit(); | 654 errorexit(); |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
794 appendp(Prog *q) | 809 appendp(Prog *q) |
795 { | 810 { |
796 Prog *p; | 811 Prog *p; |
797 | 812 |
798 p = prg(); | 813 p = prg(); |
799 p->link = q->link; | 814 p->link = q->link; |
800 q->link = p; | 815 q->link = p; |
801 p->line = q->line; | 816 p->line = q->line; |
802 return p; | 817 return p; |
803 } | 818 } |
OLD | NEW |