Mercurial > projects > ddmd
comparison dmd/StringExp.d @ 108:6da99741178e
e2ir.c changes, mainly accounts for static arrays being value types now
author | Trass3r |
---|---|
date | Tue, 31 Aug 2010 21:41:01 +0200 |
parents | 5c859d5fbe27 |
children | e28b18c23469 |
comparison
equal
deleted
inserted
replaced
107:d8f19d85fadb | 108:6da99741178e |
---|---|
828 L1: | 828 L1: |
829 e = el_var(si); | 829 e = el_var(si); |
830 } | 830 } |
831 else if (tb.ty == TY.Tsarray) | 831 else if (tb.ty == TY.Tsarray) |
832 { | 832 { |
833 Symbol *si; | |
834 dt_t *dt = null; | 833 dt_t *dt = null; |
835 | 834 |
836 toDt(&dt); | 835 toDt(&dt); |
837 dtnzeros(&dt, sz); // leave terminating 0 | 836 dtnzeros(&dt, sz); // leave terminating 0 |
838 | 837 |
839 si = symbol_generate(SC.SCstatic,type_allocn(TYM.TYarray, tschar)); | 838 Symbol* si = symbol_generate(SC.SCstatic,type_allocn(TYM.TYarray, tschar)); |
840 si.Sdt = dt; | 839 si.Sdt = dt; |
841 si.Sfl = FL.FLdata; | 840 si.Sfl = FL.FLdata; |
842 | 841 |
843 version (ELFOBJ_OR_MACHOBJ) { // Burton | 842 version (ELFOBJ_OR_MACHOBJ) { // Burton |
844 si.Sseg = Segment.CDATA; | 843 si.Sseg = Segment.CDATA; |
845 } | 844 } |
846 outdata(si); | 845 outdata(si); |
847 | 846 |
848 e = el_var(si); | 847 e = el_var(si); |
848 e.Enumbytes = len * sz; | |
849 } | 849 } |
850 else if (tb.ty == TY.Tpointer) | 850 else if (tb.ty == TY.Tpointer) |
851 { | 851 { |
852 e = el_calloc(); | 852 e = el_calloc(); |
853 e.Eoper = OPER.OPstring; | 853 e.Eoper = OPER.OPstring; |