Changeset 90152a4 for tests/alloc.c
- Timestamp:
- Aug 27, 2018, 4:40:34 PM (7 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- b7c89aa
- Parents:
- f9feab8 (diff), 305581d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 moved
-
tests/alloc.c (moved) (moved from src/tests/alloc.c ) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/alloc.c
rf9feab8 r90152a4 10 10 // Created On : Wed Feb 3 07:56:22 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 20 16:01:10 201713 // Update Count : 3 1812 // Last Modified On : Thu Aug 9 06:21:35 2018 13 // Update Count : 337 14 14 // 15 15 … … 18 18 #include <stdint.h> // uintptr_t 19 19 #include <stdlib.h> // posix_memalign 20 #include <fstream >21 #include <stdlib >// access C malloc, realloc20 #include <fstream.hfa> 21 #include <stdlib.hfa> // access C malloc, realloc 22 22 23 23 int * foo( int * p, int c ) { return p; } … … 27 27 int main( void ) { 28 28 size_t dim = 10; 29 char fill = '\xff'; 29 30 int * p; 30 char fill = '\1';31 31 32 32 // allocation, non-array types 33 33 34 p = (int *)(void *)malloc( sizeof(*p) ); // C malloc, type unsafe 34 // int & r = malloc(); 35 // r = 0xdeadbeef; 36 // printf( "C malloc %#x\n", r ); 37 // free( &r ); 38 39 p = (int *)malloc( sizeof(*p) ); // C malloc, type unsafe 35 40 *p = 0xdeadbeef; 36 41 printf( "C malloc %#x\n", *p ); … … 49 54 p = alloc( fill ); // CFA alloc, fill 50 55 printf( "CFA alloc, fill %08x\n", *p ); 56 free( p ); 51 57 52 58 … … 54 60 printf( "\n" ); 55 61 56 p = (int *)calloc( dim, sizeof( *p ) ); // C array calloc, type unsafe62 p = (int *)calloc( dim, sizeof( *p ) ); // C array calloc, type unsafe 57 63 printf( "C array calloc, fill 0\n" ); 58 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] ); }64 for ( i; dim ) { printf( "%#x ", p[i] ); } 59 65 printf( "\n" ); 60 66 free( p ); … … 62 68 p = calloc( dim ); // CFA array calloc, type safe 63 69 printf( "CFA array calloc, fill 0\n" ); 64 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] ); }70 for ( i; dim ) { printf( "%#x ", p[i] ); } 65 71 printf( "\n" ); 66 72 free( p ); 67 73 68 74 p = alloc( dim ); // CFA array alloc, type safe 69 for ( i nt i = 0; i < dim; i += 1) { p[i] = 0xdeadbeef; }75 for ( i; dim ) { p[i] = 0xdeadbeef; } 70 76 printf( "CFA array alloc, no fill\n" ); 71 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] ); }77 for ( i; dim ) { printf( "%#x ", p[i] ); } 72 78 printf( "\n" ); 73 79 free( p ); 74 80 75 81 p = alloc( 2 * dim, fill ); // CFA array alloc, fill 76 printf( "CFA array alloc, fill %# x\n", fill );77 for ( i nt i = 0; i < 2 * dim; i += 1) { printf( "%#x ", p[i] ); }82 printf( "CFA array alloc, fill %#hhx\n", fill ); 83 for ( i; 2 * dim ) { printf( "%#x ", p[i] ); } 78 84 printf( "\n" ); 79 85 // do not free … … 83 89 printf( "\n" ); 84 90 85 p = (int *) (void *)realloc( p, dim * sizeof(*p) );// C realloc86 for ( i nt i = 0; i < dim; i += 1) { p[i] = 0xdeadbeef; }91 p = (int *)realloc( p, dim * sizeof(*p) ); // C realloc 92 for ( i; dim ) { p[i] = 0xdeadbeef; } 87 93 printf( "C realloc\n" ); 88 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] ); }94 for ( i; dim ) { printf( "%#x ", p[i] ); } 89 95 printf( "\n" ); 90 96 91 97 p = realloc( p, 2 * dim * sizeof(*p) ); // CFA realloc 92 for ( i nt i = dim; i < 2 * dim; i += 1) { p[i] = 0x1010101; }98 for ( i; dim ~ 2 * dim ) { p[i] = 0x1010101; } 93 99 printf( "CFA realloc\n" ); 94 for ( i nt i = 0; i < 2 * dim; i += 1) { printf( "%#x ", p[i] ); }100 for ( i; 2 * dim ) { printf( "%#x ", p[i] ); } 95 101 printf( "\n" ); 96 102 // do not free … … 101 107 102 108 p = alloc( p, dim ); // CFA resize array alloc 103 for ( i nt i = 0; i < dim; i += 1) { p[i] = 0xdeadbeef; }109 for ( i; dim ) { p[i] = 0xdeadbeef; } 104 110 printf( "CFA resize alloc\n" ); 105 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] ); }111 for ( i; dim ) { printf( "%#x ", p[i] ); } 106 112 printf( "\n" ); 107 113 108 114 p = alloc( p, 2 * dim ); // CFA resize array alloc 109 for ( i nt i = dim; i < 2 * dim; i += 1) { p[i] = 0x1010101; }115 for ( i; dim ~ 2 * dim ) { p[i] = 0x1010101; } 110 116 printf( "CFA resize array alloc\n" ); 111 for ( i nt i = 0; i < 2 * dim; i += 1) { printf( "%#x ", p[i] ); }117 for ( i; 2 * dim ) { printf( "%#x ", p[i] ); } 112 118 printf( "\n" ); 113 119 114 120 p = alloc( p, dim ); // CFA array alloc 115 121 printf( "CFA resize array alloc\n" ); 116 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] ); }122 for ( i; dim ) { printf( "%#x ", p[i] ); } 117 123 printf( "\n" ); 118 124 … … 122 128 p = alloc( p, dim, fill ); // CFA array alloc, fill 123 129 printf( "CFA resize array alloc, fill\n" ); 124 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] ); }130 for ( i; dim ) { printf( "%#x ", p[i] ); } 125 131 printf( "\n" ); 126 132 127 133 p = alloc( p, 2 * dim, fill ); // CFA array alloc, fill 128 134 printf( "CFA resize array alloc, fill\n" ); 129 for ( i nt i = 0; i < 2 * dim; i += 1) { printf( "%#x ", p[i] ); }135 for ( i; 2 * dim ) { printf( "%#x ", p[i] ); } 130 136 printf( "\n" ); 131 137 132 138 p = alloc( p, dim, fill ); // CFA array alloc, fill 133 139 printf( "CFA resize array alloc, fill\n" ); 134 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x ", p[i] );; }140 for ( i; dim ) { printf( "%#x ", p[i] );; } 135 141 printf( "\n" ); 136 142 free( p ); … … 187 193 stp = align_alloc( Alignment, dim ); // CFA array memalign 188 194 assert( (uintptr_t)stp % Alignment == 0 ); 189 for ( i nt i = 0; i < dim; i += 1) { stp[i] = (Struct){ 42, 42.5 }; }195 for ( i; dim ) { stp[i] = (Struct){ 42, 42.5 }; } 190 196 printf( "CFA array align_alloc\n" ); 191 for ( i nt i = 0; i < dim; i += 1) { printf( "%d %g, ", stp[i].x, stp[i].y ); }197 for ( i; dim ) { printf( "%d %g, ", stp[i].x, stp[i].y ); } 192 198 printf( "\n" ); 193 199 free( stp ); … … 196 202 assert( (uintptr_t)stp % Alignment == 0 ); 197 203 printf( "CFA array align_alloc, fill\n" ); 198 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x %a, ", stp[i].x, stp[i].y ); }204 for ( i; dim ) { printf( "%#x %a, ", stp[i].x, stp[i].y ); } 199 205 printf( "\n" ); 200 206 free( stp ); … … 213 219 printf( "\n" ); 214 220 215 memset( sta, dim, fill );// CFA array memset, type safe221 amemset( sta, fill, dim ); // CFA array memset, type safe 216 222 printf( "CFA array memset\n" ); 217 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x %a, ", sta[i].x, sta[i].y ); }218 printf( "\n" ); 219 220 memcpy( sta1, sta, dim );// CFA array memcpy, type safe221 printf( "CFA memcpy\n" );222 for ( i nt i = 0; i < dim; i += 1) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); }223 for ( i; dim ) { printf( "%#x %a, ", sta[i].x, sta[i].y ); } 224 printf( "\n" ); 225 226 amemcpy( sta1, sta, dim ); // CFA array memcpy, type safe 227 printf( "CFA array memcpy\n" ); 228 for ( i; dim ) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); } 223 229 printf( "\n" ); 224 230 … … 235 241 stp = anew( dim, 42, 42.5 ); 236 242 printf( "CFA array new initialize\n" ); 237 for ( i nt i = 0; i < dim; i += 1) { printf( "%d %g, ", stp[i].x, stp[i].y ); }243 for ( i; dim ) { printf( "%d %g, ", stp[i].x, stp[i].y ); } 238 244 printf( "\n" ); 239 245 stp1 = anew( dim, 42, 42.5 ); 240 for ( i nt i = 0; i < dim; i += 1) { printf( "%d %g, ", stp1[i].x, stp1[i].y ); }246 for ( i; dim ) { printf( "%d %g, ", stp1[i].x, stp1[i].y ); } 241 247 printf( "\n" ); 242 248 adelete( dim, stp, dim, stp1 ); … … 254 260 free( p ); 255 261 262 #ifdef ERR1 256 263 stp = malloc(); 257 264 printf( "\nSHOULD FAIL\n" ); 258 #ifdef ERR1 259 p = alloc( stp, dim * sizeof( *stp) );265 p = realloc( stp, dim * sizeof( *stp ) ); 266 p = alloc( stp, dim * sizeof( *stp ) ); 260 267 p = memset( stp, 10 ); 261 268 p = memcpy( &st1, &st );
Note:
See TracChangeset
for help on using the changeset viewer.