Mercurial > projects > ldc
comparison lphobos/internal/arrays.d @ 91:3f949c6e2e9d trunk
[svn r95] added support for mains like:
T main(string[] args)
fixed a bug with slicing a pointer that is an argument with no storage
author | lindquist |
---|---|
date | Wed, 07 Nov 2007 04:52:56 +0100 |
parents | b688ad419f8c |
children | 61615fa85940 |
comparison
equal
deleted
inserted
replaced
90:16e88334bba7 | 91:3f949c6e2e9d |
---|---|
3 private import llvm.intrinsic; | 3 private import llvm.intrinsic; |
4 | 4 |
5 extern(C): | 5 extern(C): |
6 | 6 |
7 int memcmp(void*,void*,size_t); | 7 int memcmp(void*,void*,size_t); |
8 size_t strlen(char*); | |
8 | 9 |
9 version(LLVM64) | 10 version(LLVM64) |
10 alias llvm_memcpy_i64 llvm_memcpy; | 11 alias llvm_memcpy_i64 llvm_memcpy; |
11 else | 12 else |
12 alias llvm_memcpy_i32 llvm_memcpy; | 13 alias llvm_memcpy_i32 llvm_memcpy; |
130 else if (len % newelemsz) { | 131 else if (len % newelemsz) { |
131 throw new Exception("Bad array cast"); | 132 throw new Exception("Bad array cast"); |
132 } | 133 } |
133 return (len*elemsz)/newelemsz; | 134 return (len*elemsz)/newelemsz; |
134 } | 135 } |
136 | |
137 // creating args for main | |
138 void _d_main_args(uint n, char** args, ref char[][] res) | |
139 { | |
140 assert(res.length == n); | |
141 foreach(i,v; args[0..n]) | |
142 { | |
143 res[i] = v[0 .. strlen(v)]; | |
144 } | |
145 } | |
146 | |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 |