Last change
on this file since d68de59 was
cfbc56ec,
checked in by Michael Brooks <mlbrooks@…>, 10 months ago
|
Enable array RAII and provide uninit(-), a uNoCtor equivalent.
Enable construction/destruction of "new" CFA array elements,
which was previously deactivated to avoid a compiler performance issue.
The enabled RAII steps more carefully around the performance issue.
Provide uninit(-), with tests covering the typical use case:
struct Foo;
void ?{}( Foo & this, int i ) { printf( "ctor at %d\n", i ); }
uninit(Foo) a[10]; no prints
for (i; 10) (a[i]){ i }; prints
array(uninit(Foo), 10) b; no prints
for (i; 10) (b[i]){ i }; prints
|
-
Property mode set to
100644
|
File size:
964 bytes
|
Rev | Line | |
---|
[cfbc56ec] | 1 | === builtins |
---|
| 2 | some nonzero |
---|
| 3 | silly: some nonzero |
---|
| 4 | === custom |
---|
| 5 | [1] |
---|
| 6 | ctor 0 |
---|
| 7 | ctor 1 |
---|
| 8 | ctor 2 |
---|
| 9 | ctor 3 |
---|
| 10 | ctor 4 |
---|
| 11 | func 0 |
---|
| 12 | func 1 |
---|
| 13 | func 2 |
---|
| 14 | func 3 |
---|
| 15 | func 4 |
---|
| 16 | dtor 4 |
---|
| 17 | dtor 3 |
---|
| 18 | dtor 2 |
---|
| 19 | dtor 1 |
---|
| 20 | dtor 0 |
---|
| 21 | [2] |
---|
| 22 | ctor 0 |
---|
| 23 | ctor 1 |
---|
| 24 | ctor 2 |
---|
| 25 | ctor 3 |
---|
| 26 | ctor 4 |
---|
| 27 | ctor 5 |
---|
| 28 | func 0 at (0, 0) |
---|
| 29 | func 1 at (0, 1) |
---|
| 30 | func 2 at (0, 2) |
---|
| 31 | func 3 at (1, 0) |
---|
| 32 | func 4 at (1, 1) |
---|
| 33 | func 5 at (1, 2) |
---|
| 34 | dtor 5 |
---|
| 35 | dtor 4 |
---|
| 36 | dtor 3 |
---|
| 37 | dtor 2 |
---|
| 38 | dtor 1 |
---|
| 39 | dtor 0 |
---|
| 40 | [3] |
---|
| 41 | ctor 0 |
---|
| 42 | ctor 1 |
---|
| 43 | ctor 2 |
---|
| 44 | ctor 3 |
---|
| 45 | ctor 4 |
---|
| 46 | func 0 |
---|
| 47 | func 1 |
---|
| 48 | func 2 |
---|
| 49 | func 3 |
---|
| 50 | func 4 |
---|
| 51 | dtor 4 |
---|
| 52 | dtor 3 |
---|
| 53 | dtor 2 |
---|
| 54 | dtor 1 |
---|
| 55 | dtor 0 |
---|
| 56 | [4] |
---|
| 57 | ctor 0 |
---|
| 58 | ctor 1 |
---|
| 59 | ctor 2 |
---|
| 60 | ctor 3 |
---|
| 61 | ctor 4 |
---|
| 62 | func 0 |
---|
| 63 | func 1 |
---|
| 64 | func 2 |
---|
| 65 | func 3 |
---|
| 66 | func 4 |
---|
| 67 | dtor 4 |
---|
| 68 | dtor 3 |
---|
| 69 | dtor 2 |
---|
| 70 | dtor 1 |
---|
| 71 | dtor 0 |
---|
| 72 | === uninit |
---|
| 73 | [1] |
---|
| 74 | before ctors |
---|
| 75 | ctor 0 |
---|
| 76 | ctor 999 |
---|
| 77 | ctor 888 |
---|
| 78 | ctor 3 |
---|
| 79 | ctor 4 |
---|
| 80 | func 0 |
---|
| 81 | func 999 |
---|
| 82 | func 888 |
---|
| 83 | func 3 |
---|
| 84 | func 4 |
---|
| 85 | dtor 4 |
---|
| 86 | dtor 3 |
---|
| 87 | dtor 888 |
---|
| 88 | dtor 999 |
---|
| 89 | dtor 0 |
---|
| 90 | [2] |
---|
| 91 | before ctors |
---|
| 92 | ctor 100 |
---|
| 93 | ctor 101 |
---|
| 94 | ctor 102 |
---|
| 95 | ctor 110 |
---|
| 96 | ctor 999 |
---|
| 97 | ctor 888 |
---|
| 98 | func 100 at (0, 0) |
---|
| 99 | func 101 at (0, 1) |
---|
| 100 | func 102 at (0, 2) |
---|
| 101 | func 110 at (1, 0) |
---|
| 102 | func 999 at (1, 1) |
---|
| 103 | func 888 at (1, 2) |
---|
| 104 | dtor 888 |
---|
| 105 | dtor 999 |
---|
| 106 | dtor 110 |
---|
| 107 | dtor 102 |
---|
| 108 | dtor 101 |
---|
| 109 | dtor 100 |
---|
Note: See
TracBrowser
for help on using the repository browser.