mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
81 lines
1.5 KiB
D
81 lines
1.5 KiB
D
// REQUIRED_ARGS: -preview=dip1021
|
|
|
|
/* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fob1.d(104): Error: variable `fob1.foo1.p` has undefined state and cannot be read
|
|
fail_compilation/fob1.d(104): Error: variable `fob1.foo1.p` is returned but is Undefined
|
|
---
|
|
*/
|
|
|
|
#line 100
|
|
|
|
@live int* foo1()
|
|
{
|
|
int* p = void;
|
|
return p;
|
|
}
|
|
|
|
/* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fob1.d(204): Error: variable `fob1.foo2.p` assigning to Owner without disposing of owned value
|
|
fail_compilation/fob1.d(203): Error: variable `fob1.foo2.p` is not disposed of before return
|
|
---
|
|
*/
|
|
|
|
#line 200
|
|
|
|
@live void foo2()
|
|
{
|
|
int* p;
|
|
p = null;
|
|
}
|
|
|
|
|
|
/* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fob1.d(304): Error: variable `fob1.foo3.p` has undefined state and cannot be read
|
|
fail_compilation/fob1.d(304): Error: variable `fob1.foo3.p` is returned but is Undefined
|
|
fail_compilation/fob1.d(303): Error: variable `fob1.foo3.q` is not disposed of before return
|
|
---
|
|
*/
|
|
|
|
#line 300
|
|
|
|
@live int* foo3(int* p)
|
|
{
|
|
int* q = p;
|
|
return p;
|
|
}
|
|
|
|
/* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fob1.d(405): Error: variable `fob1.foo4.bq` has undefined state and cannot be read
|
|
---
|
|
*/
|
|
|
|
#line 400
|
|
|
|
@live int* foo4(int* p)
|
|
{
|
|
scope int* bq = p;
|
|
scope const int* cq = p;
|
|
*bq = 1;
|
|
return p;
|
|
}
|
|
|
|
/* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fob1.d(503): Error: more than one mutable reference to `a` in arguments to `fob1.foo5()`
|
|
---
|
|
*/
|
|
|
|
// https://issues.dlang.org/show_bug.cgi?id=20781
|
|
|
|
#line 500
|
|
|
|
void test5() {
|
|
int a;
|
|
foo5(a, a);
|
|
}
|
|
|
|
@live void foo5(ref int, ref int);
|