Restore tail call optimization subversion.

Restore the essence of 898960247a8b2e6534738b7a3a244855f379faf9, which
sabotages tail call optimization.  This is necessary even when the
mutually recursive functions are in separate compilation units.
diff --git a/test/unit/prof_accum.h b/test/unit/prof_accum.h
index de9cfea..109d86b 100644
--- a/test/unit/prof_accum.h
+++ b/test/unit/prof_accum.h
@@ -14,16 +14,22 @@
 void *									\
 alloc_##n(unsigned bits)						\
 {									\
+	void *p;							\
 									\
-	if (bits == 0) {						\
-		void *p = mallocx(1, 0);				\
-		assert_ptr_not_null(p, "Unexpected mallocx() failure");	\
-		return (p);						\
-	} else {							\
+	if (bits == 0)							\
+		p = mallocx(1, 0);					\
+	else {								\
 		switch (bits & 0x1U) {					\
-		case 0: return (alloc_0(bits >> 1));			\
-		case 1: return (alloc_1(bits >> 1));			\
+		case 0:							\
+			p = (alloc_0(bits >> 1));			\
+			break;						\
+		case 1:							\
+			p = (alloc_1(bits >> 1));			\
+			break;						\
 		default: not_reached();					\
 		}							\
 	}								\
+	/* Intentionally sabotage tail call optimization. */		\
+	assert_ptr_not_null(p, "Unexpected mallocx() failure");		\
+	return (p);							\
 }