Index: src/tests/polymorphism.c
===================================================================
--- src/tests/polymorphism.c	(revision 3de176d09d6a1040c558240a579d4f8ce273e82f)
+++ src/tests/polymorphism.c	(revision a7caf3d39000047777d818c855ecc4954932e20b)
@@ -47,5 +47,5 @@
 	S s;
 	s.i = i;
-	assert(s.i == i);
+	assertf(s.i == i, "struct operation fails in polymorphic context.");
 
 	B b;
@@ -73,6 +73,6 @@
 	{
 		// test aggregates with polymorphic members
-		typedef uint32_t x_type;
-		typedef uint64_t y_type;
+		typedef __attribute__((aligned(8))) uint32_t x_type;
+		typedef __attribute__((aligned(8))) uint64_t y_type;
 
 		x_type x = 3;
@@ -89,6 +89,6 @@
 		// ensure that the size of aggregates with polymorphic members
 		// matches the size of the aggregates in a monomorphic context
-		assert( struct_size(x, y) == sizeof(S) );
-		assert( union_size(x, y) == sizeof(U) );
+		assertf( struct_size(x, y) == sizeof(S), "struct size differs in polymorphic context." );
+		assertf( union_size(x, y) == sizeof(U), "union size differs in polymorphic context." );
 
 		y_type ?=?(y_type & this, zero_t) {
@@ -111,5 +111,5 @@
 		u.f2 = 0;
 		u.f1 = x;
-		assert(ret == u.f2);
+		assertf(ret == u.f2, "union operation fails in polymorphic context.");
 	}
 }
