xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/testsuite/libphobos.gc/attributes.d (revision b1e838363e3c6fc78a55519254d99869742dd33c)
1 import core.memory;
2 
3 // TODO: The following should work, but L10 (second assert) fails.
version(none)4 version(none) void dotest(T) (T* ptr)
5 {
6     GC.clrAttr(ptr, uint.max);
7     assert(GC.getAttr(ptr) == 0);
8 
9     GC.setAttr(ptr, GC.BlkAttr.NO_MOVE);
10     assert(GC.getAttr(ptr) == GC.BlkAttr.NO_MOVE);
11 
12     GC.clrAttr(ptr, GC.BlkAttr.NO_MOVE);
13     assert(GC.getAttr(ptr) == 0);
14     GC.clrAttr(ptr, GC.BlkAttr.NO_MOVE);
15     assert(GC.getAttr(ptr) == 0);
16 }
dotest(T)17 else void dotest(T) (T* ptr)
18 {
19     // https://issues.dlang.org/show_bug.cgi?id=21484
20     GC.clrAttr(ptr, uint.max);
21     GC.setAttr(ptr, GC.BlkAttr.NO_MOVE);
22     GC.getAttr(ptr);
23 }
24 
main()25 void main ()
26 {
27     auto ptr = new int;
28     dotest!(const(int))(ptr);
29     dotest!(int)(ptr);
30 }
31