Changeset 191a190
- Timestamp:
- Aug 31, 2020, 5:20:49 PM (3 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 49a980b
- Parents:
- b26144d
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/stdlib.hfa
rb26144d r191a190 201 201 memset( (char *)ptr + copy_end, (int)Fill.c, Dim * size - copy_end ); 202 202 } else if(Fill.tag == 't') { 203 for ( int i = copy_end; i < = Dim * size - size; i += size ) {203 for ( int i = copy_end; i < Dim * size; i += size ) { 204 204 memcpy( (char *)ptr + i, &Fill.t, size ); 205 205 } … … 207 207 memcpy( (char *)ptr + copy_end, Fill.at, min(Dim * size - copy_end, Fill.size) ); 208 208 } else if(Fill.tag == 'T') { 209 for ( int i = copy_end; i < = Dim * size - size; i += size ) {209 for ( int i = copy_end; i < Dim * size; i += size ) { 210 210 memcpy( (char *)ptr + i, Fill.at, size ); 211 211 } -
tests/alloc.cfa
rb26144d r191a190 47 47 free( ip ); 48 48 49 ip = alloc _set(fill ); // CFA alloc, fill49 ip = alloc( fill`fill ); // CFA alloc, fill 50 50 printf( "CFA alloc, fill %08x\n", *ip ); 51 51 free( ip ); 52 52 53 ip = alloc _set( 3); // CFA alloc, fill53 ip = alloc( 3`fill ); // CFA alloc, fill 54 54 printf( "CFA alloc, fill %d\n", *ip ); 55 55 free( ip ); … … 78 78 free( ip ); 79 79 80 ip = alloc _set( 2 * dim,fill ); // CFA array alloc, fill80 ip = alloc( 2 * dim, fill`fill ); // CFA array alloc, fill 81 81 printf( "CFA array alloc, fill %#hhx\n", fill ); 82 82 for ( i; 2 * dim ) { printf( "%#x ", ip[i] ); } … … 84 84 free( ip ); 85 85 86 ip = alloc _set( 2 * dim, 0xdeadbeef); // CFA array alloc, fill86 ip = alloc( 2 * dim, ((int)0xdeadbeef)`fill ); // CFA array alloc, fill 87 87 printf( "CFA array alloc, fill %#hhx\n", 0xdeadbeef ); 88 88 for ( i; 2 * dim ) { printf( "%#x ", ip[i] ); } … … 90 90 // do not free 91 91 92 ip1 = alloc _set( 2 * dim, ip, 2 * dim); // CFA array alloc, fill92 ip1 = alloc( 2 * dim, [ip, 2 * dim]`fill ); // CFA array alloc, fill 93 93 printf( "CFA array alloc, fill from array\n" ); 94 94 for ( i; 2 * dim ) { printf( "%#x %#x, ", ip[i], ip1[i] ); } … … 117 117 printf( "\n" ); 118 118 119 ip = alloc( ip, dim); // CFA realloc array alloc119 ip = alloc( dim, ip`realloc ); // CFA realloc array alloc 120 120 for ( i; dim ) { ip[i] = 0xdeadbeef; } 121 121 printf( "CFA realloc array alloc\n" ); … … 124 124 // do not free 125 125 126 ip = alloc( ip, 2 * dim); // CFA realloc array alloc126 ip = alloc( 2 * dim, ip`realloc ); // CFA realloc array alloc 127 127 for ( i; dim ~ 2 * dim ) { ip[i] = 0x1010101; } // fill upper part 128 128 printf( "CFA realloc array alloc\n" ); … … 131 131 // do not free 132 132 133 ip = alloc( ip, dim); // CFA realloc array alloc133 ip = alloc( dim, ip`realloc ); // CFA realloc array alloc 134 134 printf( "CFA realloc array alloc\n" ); 135 135 for ( i; dim ) { printf( "%#x ", ip[i] ); } … … 137 137 // do not free 138 138 139 ip = alloc _set( ip, 3 * dim,fill ); // CFA realloc array alloc, fill139 ip = alloc( 3 * dim, ip`realloc, fill`fill ); // CFA realloc array alloc, fill 140 140 printf( "CFA realloc array alloc, fill\n" ); 141 141 for ( i; 3 * dim ) { printf( "%#x ", ip[i] ); } … … 143 143 // do not free 144 144 145 ip = alloc _set( ip, dim,fill ); // CFA realloc array alloc, fill145 ip = alloc( dim, ip`realloc, fill`fill ); // CFA realloc array alloc, fill 146 146 printf( "CFA realloc array alloc, fill\n" ); 147 147 for ( i; dim ) { printf( "%#x ", ip[i] ); } … … 149 149 // do not free 150 150 151 ip = alloc _set( ip, 3 * dim,fill ); // CFA realloc array alloc, fill151 ip = alloc( 3 * dim, ip`realloc, fill`fill ); // CFA realloc array alloc, fill 152 152 printf( "CFA realloc array alloc, fill\n" ); 153 153 for ( i; 3 * dim ) { printf( "%#x ", ip[i] ); } … … 155 155 // do not free 156 156 #if 0 // FIX ME 157 ip = alloc _set( ip, 5 * dim, 5); // CFA realloc array alloc, 5157 ip = alloc( 5 * dim, ip`realloc, 5`fill ); // CFA realloc array alloc, 5 158 158 printf( "CFA realloc array alloc, 5\n" ); 159 159 for ( i; 5 * dim ) { printf( "%#x ", ip[i] ); } … … 161 161 // do not free 162 162 163 ip = alloc _set( ip, dim, 5); // CFA realloc array alloc, 5163 ip = alloc( dim, ip`realloc, 5`fill ); // CFA realloc array alloc, 5 164 164 printf( "CFA realloc array alloc, 5\n" ); 165 165 for ( i; dim ) { printf( "%#x ", ip[i] ); } … … 167 167 // do not free 168 168 169 ip = alloc _set( ip, 5 * dim, 5); // CFA realloc array alloc, 5169 ip = alloc( 5 * dim, ip`realloc, 5`fill ); // CFA realloc array alloc, 5 170 170 printf( "CFA realloc array alloc, 5\n" ); 171 171 for ( i; 5 * dim ) { printf( "%#x ", ip[i] ); } … … 182 182 ip = alloc(); 183 183 *ip = 5; 184 double * dp = alloc( ip );184 double * dp = alloc( ip`resize ); 185 185 *dp = 5.5; 186 S * sp = alloc( dp );186 S * sp = alloc( dp`resize ); 187 187 *sp = (S){ {0, 1, 2, 3, 4} }; 188 ip = alloc( sp );188 ip = alloc( sp`resize ); 189 189 *ip = 3; 190 190 free( ip ); … … 195 195 ip = alloc( 5 ); 196 196 for ( i; 5 ) { ip[i] = 5; } 197 dp = alloc( ip, 5);197 dp = alloc( 5, ip`resize ); 198 198 for ( i; 5 ) { dp[i] = 5.5; } 199 sp = alloc( dp, 5);199 sp = alloc( 5, dp`resize ); 200 200 for ( i; 5 ) { sp[i] = (S){ {0, 1, 2, 3, 4} }; } 201 ip = alloc( sp, 3);201 ip = alloc( 3, sp`resize ); 202 202 for ( i; 3 ) { ip[i] = 3; } 203 ip = alloc( ip, 7);203 ip = alloc( 7, ip`realloc ); 204 204 for ( i; 7 ) { ip[i] = 7; } 205 ip = alloc( ip, 7, false );205 ip = alloc( 7, ip`resize ); 206 206 for ( i; 7 ) { ip[i] = 7; } 207 207 free( ip ); … … 237 237 free( stp ); 238 238 239 stp = &(*alloc _align( Alignment)){ 42, 42.5 }; // CFA alloc_align239 stp = &(*alloc( Alignment`align)){ 42, 42.5 }; // CFA alloc_align 240 240 assert( (uintptr_t)stp % Alignment == 0 ); 241 241 printf( "CFA alloc_align %d %g\n", stp->x, stp->y ); 242 242 free( stp ); 243 243 244 stp = &(*alloc _align( Alignment)){ 42, 42.5 }; // CFA alloc_align244 stp = &(*alloc( Alignment`align )){ 42, 42.5 }; // CFA alloc_align 245 245 assert( (uintptr_t)stp % Alignment == 0 ); 246 246 printf( "CFA alloc_align %d %g\n", stp->x, stp->y ); 247 247 free( stp ); 248 248 249 stp = alloc _align_set( Alignment,fill ); // CFA memalign, fill249 stp = alloc( Alignment`align, fill`fill ); // CFA memalign, fill 250 250 assert( (uintptr_t)stp % Alignment == 0 ); 251 251 printf( "CFA alloc_align fill %#x %a\n", stp->x, stp->y ); 252 252 free( stp ); 253 253 254 stp = alloc _align_set( Alignment, (Struct){ 42, 42.5 }); // CFA memalign, fill254 stp = alloc( Alignment`align, (Struct){ 42, 42.5 }`fill ); // CFA memalign, fill 255 255 assert( (uintptr_t)stp % Alignment == 0 ); 256 256 printf( "CFA alloc_align fill %d %g\n", stp->x, stp->y ); 257 257 // do not free 258 258 259 stp = &(*alloc _align( stp, 4096)){ 42, 42.5 }; // CFA realign259 stp = &(*alloc( stp`realloc, 4096`align )){ 42, 42.5 }; // CFA realign 260 260 assert( (uintptr_t)stp % 4096 == 0 ); 261 261 printf( "CFA alloc_align %d %g\n", stp->x, stp->y ); … … 266 266 printf( "\n" ); 267 267 268 stp = alloc _align( Alignment, dim); // CFA array memalign268 stp = alloc( dim, Alignment`align ); // CFA array memalign 269 269 assert( (uintptr_t)stp % Alignment == 0 ); 270 270 for ( i; dim ) { stp[i] = (Struct){ 42, 42.5 }; } … … 274 274 free( stp ); 275 275 276 stp = alloc _align_set( Alignment, dim,fill ); // CFA array memalign, fill276 stp = alloc( dim, Alignment`align, fill`fill ); // CFA array memalign, fill 277 277 assert( (uintptr_t)stp % Alignment == 0 ); 278 278 printf( "CFA array alloc_align, fill\n" ); … … 281 281 free( stp ); 282 282 283 stp = alloc _align_set( Alignment, dim, (Struct){ 42, 42.5 }); // CFA array memalign, fill283 stp = alloc( dim, Alignment`align, ((Struct){ 42, 42.5 })`fill ); // CFA array memalign, fill 284 284 assert( (uintptr_t)stp % Alignment == 0 ); 285 285 printf( "CFA array alloc_align, fill\n" ); … … 288 288 // do not free 289 289 290 stp1 = alloc _align_set( Alignment, dim, stp, dim); // CFA array memalign, fill290 stp1 = alloc( dim, Alignment`align, [stp, dim]`fill ); // CFA array memalign, fill 291 291 assert( (uintptr_t)stp % Alignment == 0 ); 292 292 printf( "CFA array alloc_align, fill array\n" ); … … 295 295 free( stp1 ); 296 296 297 stp = alloc _align( stp, 4096, dim); // CFA aligned realloc array297 stp = alloc( dim, stp`realloc, 4096`align ); // CFA aligned realloc array 298 298 assert( (uintptr_t)stp % 4096 == 0 ); 299 299 for ( i; dim ) { stp[i] = (Struct){ 42, 42.5 }; } … … 325 325 for ( i; dim ) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); } 326 326 printf( "\n" ); 327 328 327 329 328 // new, non-array types
Note: See TracChangeset
for help on using the changeset viewer.