mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
60 lines
2 KiB
D
60 lines
2 KiB
D
/* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fail22881.d(101): Error: pointer slice `[0..6]` exceeds allocated memory block `[0..5]`
|
|
fail_compilation/fail22881.d(102): Error: pointer slice `[0..6]` exceeds allocated memory block `[0..5]`
|
|
fail_compilation/fail22881.d(110): Error: pointer slice `[3..5]` exceeds allocated memory block `[0..4]`
|
|
fail_compilation/fail22881.d(113): called from here: `ptr22881()`
|
|
fail_compilation/fail22881.d(113): while evaluating: `static assert(ptr22881())`
|
|
fail_compilation/fail22881.d(203): Error: slice `[0..2]` is out of bounds
|
|
fail_compilation/fail22881.d(207): called from here: `null22881()`
|
|
fail_compilation/fail22881.d(207): while evaluating: `static assert(null22881())`
|
|
fail_compilation/fail22881.d(305): Error: slice `[2..4]` exceeds array bounds `[0..3]`
|
|
fail_compilation/fail22881.d(308): called from here: `slice22881()`
|
|
fail_compilation/fail22881.d(308): while evaluating: `static assert(slice22881())`
|
|
fail_compilation/fail22881.d(401): Error: slice `[0..1]` exceeds array bounds `[0..0]`
|
|
fail_compilation/fail22881.d(403): Error: slice `[0..1]` exceeds array bounds `[0..0]`
|
|
---
|
|
*/
|
|
#line 100
|
|
// SliceExp: e1.type.ty == pointer
|
|
static pstr22881 = "hello".ptr[0 .. 6];
|
|
static parr22881 = ['h','e','l','l','o'].ptr[0 .. 6];
|
|
|
|
bool ptr22881()
|
|
{
|
|
char *p1 = new char[4].ptr;
|
|
p1[0 .. 4] = "str\0";
|
|
char *s1 = p1[1 .. 3].ptr;
|
|
char *s2 = s1[1 .. 3].ptr; // = p1[2 .. 4]
|
|
char *s3 = s2[1 .. 3].ptr; // = p1[3 .. 5]
|
|
return true;
|
|
}
|
|
static assert(ptr22881());
|
|
|
|
|
|
#line 200
|
|
// SliceExp: e1.op == null
|
|
bool null22881()
|
|
{
|
|
string[][1] nullexp;
|
|
nullexp[0][0 .. 2] = "st";
|
|
return true;
|
|
}
|
|
static assert(null22881());
|
|
|
|
#line 300
|
|
// SliceExp: e1.op == slice
|
|
bool slice22881()
|
|
{
|
|
char[] str = "abcd".dup;
|
|
char[] slice = str[1 .. 4];
|
|
slice[2 .. 4] = "ab";
|
|
return true;
|
|
}
|
|
static assert(slice22881());
|
|
|
|
#line 400
|
|
// SliceExp: e1.op == arrayLiteral
|
|
static arr22881 = [][0 .. 1];
|
|
// SliceExp: e1.op == string_
|
|
static str22881 = ""[0 .. 1];
|