Index: libcfa/src/stdlib.hfa
===================================================================
--- libcfa/src/stdlib.hfa	(revision d3aa64f1fa52252ca6f76dda4aaf32c039f504d5)
+++ libcfa/src/stdlib.hfa	(revision 68f0c4ed89417e86156a08a8eea91df3d03aa571)
@@ -43,24 +43,14 @@
 //---------------------------------------
 
-// Macro because of returns
-#define $VAR_ALLOC( allocation, alignment ) \
-	if ( _Alignof(T) <= libAlign() ) return (T *)(void *)allocation( (size_t)sizeof(T) ); /* C allocation */ \
-	else return (T *)alignment( _Alignof(T), sizeof(T) )
-
 #define $ARRAY_ALLOC( allocation, alignment, dim ) \
 	if ( _Alignof(T) <= libAlign() ) return (T *)(void *)allocation( dim, (size_t)sizeof(T) ); /* C allocation */ \
 	else return (T *)alignment( _Alignof(T), dim, sizeof(T) )
 
-#define $RE_SPECIALS( ptr, size, allocation, alignment ) \
-	if ( unlikely( size == 0 ) || unlikely( ptr == 0p ) ) { \
-		if ( unlikely( size == 0 ) ) free( ptr ); \
-		$VAR_ALLOC( malloc, memalign ); \
-	} /* if */
-
 static inline forall( dtype T | sized(T) ) {
 	// Cforall safe equivalents, i.e., implicit size specification
 
 	T * malloc( void ) {
-		$VAR_ALLOC( malloc, memalign );
+		if ( _Alignof(T) <= libAlign() ) return (T *)(void *)malloc( (size_t)sizeof(T) ); /* C allocation */
+		else return (T *)memalign( _Alignof(T), sizeof(T) );
 	} // malloc
 
@@ -74,5 +64,4 @@
 
 	T * resize( T * ptr, size_t size ) {				// CFA resize, eliminate return-type cast
-		$RE_SPECIALS( ptr, size, malloc, memalign );
 		if ( _Alignof(T) <= libAlign() ) return (T *)(void *)resize( (void *)ptr, size ); // CFA resize
 		else return (T *)(void *)resize( (void *)ptr, _Alignof(T), size ); // CFA resize
@@ -80,5 +69,4 @@
 
 	T * realloc( T * ptr, size_t size ) {				// CFA realloc, eliminate return-type cast
-		$RE_SPECIALS( ptr, size, malloc, memalign );
 		if ( _Alignof(T) <= libAlign() ) return (T *)(void *)realloc( (void *)ptr, size ); // C realloc
 		else return (T *)(void *)realloc( (void *)ptr, _Alignof(T), size ); // CFA realloc
@@ -188,11 +176,13 @@
 		size_t size = sizeof(T);
 		size_t copy_end = 0;
-
 		if(Resize) {
-			ptr = (T*) (void *) resize( (int *)Resize, Align, Dim * size );
+//printf("1. $alloc_internal got: %p %p %lu %lu\n", Resize, Realloc, Align, Dim); // these prints are temporary
+			ptr = (T*) (void *) resize( (void *)Resize, Align, Dim * size );
 		} else if (Realloc) {
 			if (Fill.tag != '0') copy_end = min(malloc_size( Realloc ), Dim * size);
-			ptr = (T*) (void *) realloc( (int *)Realloc, Align, Dim * size );
+//printf("2. $alloc_internal got: %p %p %lu %lu\n", Resize, Realloc, Align, Dim);
+			ptr = (T*) (void *) realloc( (void *)Realloc, Align, Dim * size );
 		} else {
+//printf("3. $alloc_internal got: %p %p %lu %lu\n", Resize, Realloc, Align, Dim);
 			ptr = (T*) (void *) memalign( Align, Dim * size );
 		}
Index: tests/.expect/alloc-old.txt
===================================================================
--- tests/.expect/alloc-old.txt	(revision 68f0c4ed89417e86156a08a8eea91df3d03aa571)
+++ tests/.expect/alloc-old.txt	(revision 68f0c4ed89417e86156a08a8eea91df3d03aa571)
@@ -0,0 +1,74 @@
+C   malloc 0xdeadbeef
+CFA malloc 0xdeadbeef
+CFA alloc 0xdeadbeef
+CFA alloc, fill dededede
+CFA alloc, fill 3
+
+C   array calloc, fill 0
+0 0 0 0 0 0 0 0 0 0 
+CFA array calloc, fill 0
+0 0 0 0 0 0 0 0 0 0 
+CFA array alloc, no fill
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 
+CFA array alloc, fill 0xde
+0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 
+CFA array alloc, fill 0xef
+0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 
+CFA array alloc, fill from array
+0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 
+
+C realloc
+0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 
+CFA realloc
+0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 
+
+CFA realloc array alloc
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 
+CFA realloc array alloc
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 
+CFA realloc array alloc
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 
+CFA realloc array alloc, fill
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 
+CFA realloc array alloc, fill
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 
+CFA realloc array alloc, fill
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 
+
+C   memalign 42 42.5
+CFA memalign 42 42.5
+CFA posix_memalign 42 42.5
+CFA posix_memalign 42 42.5
+CFA alloc_align 42 42.5
+CFA alloc_align 42 42.5
+CFA alloc_align fill 0xdededede -0x1.ededededededep+494
+CFA alloc_align fill 42 42.5
+CFA alloc_align 42 42.5
+
+CFA array alloc_align
+42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 
+CFA array alloc_align, fill
+0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 
+CFA array alloc_align, fill
+42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 
+CFA array alloc_align, fill array
+42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 
+CFA realloc array alloc_align
+42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 
+
+CFA memset 0xdededede -0x1.ededededededep+494
+CFA memcpy 0xdededede -0x1.ededededededep+494
+
+CFA array memset
+0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 
+CFA array memcpy
+0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 0xdededede -0x1.ededededededep+494, 
+
+CFA new initialize
+42 42.5 42 42.5
+CFA array new initialize
+42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 
+42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 42 42.5, 
+
+pointer arithmetic 0
+CFA deep malloc 0xdeadbeef
Index: tests/.expect/alloc.txt
===================================================================
--- tests/.expect/alloc.txt	(revision d3aa64f1fa52252ca6f76dda4aaf32c039f504d5)
+++ tests/.expect/alloc.txt	(revision 68f0c4ed89417e86156a08a8eea91df3d03aa571)
@@ -14,12 +14,12 @@
 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 0xdededede 
 CFA array alloc, fill 0xef
-0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 
 CFA array alloc, fill from array
-0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 0xefefefef 0xefefefef, 
+0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 0xdeadbeef 0xdeadbeef, 
 
 C realloc
-0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 
 CFA realloc
-0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0xefefefef 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 
+0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 
 
 CFA realloc array alloc
Index: tests/malloc.cfa
===================================================================
--- tests/malloc.cfa	(revision d3aa64f1fa52252ca6f76dda4aaf32c039f504d5)
+++ tests/malloc.cfa	(revision 68f0c4ed89417e86156a08a8eea91df3d03aa571)
@@ -348,10 +348,10 @@
 	free(ip);
 
-	ip = resize( NULL, size );
-	test_base(ip, size, libAlign);
-	test_use(ip);
-	free(ip);
-
-	ip = resize( 0p, size );
+	ip = resize( (int*)0p, size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = resize( (int*)0p, size );
 	test_base(ip, size, libAlign);
 	test_use(ip);
@@ -378,10 +378,10 @@
 	free(ip);
 
-	ip = realloc( NULL, size );
+	ip = realloc( (int*)0p, size );
 	test_base(ip, size , libAlign);
 	test_use(ip);
 	free(ip);
 
-	ip = realloc( 0p, size );
+	ip = realloc( (int*)0p, size );
 	test_base(ip, size, libAlign);
 	test_use(ip);
@@ -488,10 +488,10 @@
 	free(tp);
 
-	tp = resize( NULL, size );
+	tp = resize( (T1*)0p, size );
 	test_base(tp, size, tAlign );
 	test_use(tp);
 	free(tp);
 
-	tp = resize( 0p, size );
+	tp = resize( (T1*)0p, size );
 	test_base(tp, size, tAlign );
 	test_use(tp);
@@ -518,13 +518,15 @@
 	free(tp);
 
-	tp = realloc( NULL, size  );
-	test_base(tp, size , tAlign );
-	test_use(tp);
-	free(tp);
-
-	tp = realloc( 0p, size );
-	test_base(tp, size, tAlign );
-	test_use(tp);
-	free(tp);
+/*
+	tp = realloc( (T1*)0p, size  );
+	est_base(tp, size , tAlign );
+	est_use(tp);
+	free(tp);
+
+	tp = realloc( (T1*)0p, size );
+	est_base(tp, size, tAlign );
+	est_use(tp);
+	free(tp);
+*/
 
 	tp = memalign( align );
@@ -559,5 +561,5 @@
 	free(tp);
 
-	(int) posix_memalign( (int **) &tp, align );
+	(int) posix_memalign( (T1 **) &tp, align );
 	test_base(tp, elemSize, align);
 	test_use(tp);
