Index: tests/exceptions/message.cfa
===================================================================
--- tests/exceptions/message.cfa	(revision 190a833c2baaf0fb88c72cb00720c5ab476197bc)
+++ tests/exceptions/message.cfa	(revision 689d0575efebba7e0ece164aab8e2967a9548a43)
@@ -42,4 +42,19 @@
 }
 
+// Do not construct an exception without a vtable!
+void ?{}(BadIndexException&) = void;
+
+void ?{}(BadIndexException & this,
+		vtable(BadIndexException) & vt, int value, int size) {
+	this.virtual_table = &vt;
+	this.value = value;
+	this.size = size;
+	this.message = 0p;
+}
+
+void ?{}(BadIndexException & this, BadIndexException that) {
+	copy(&this, &that);
+}
+
 void ^?{}(BadIndexException & this) {
 	free(this.message);
@@ -54,5 +69,5 @@
 // This is not supposed to be a real range check, but that's the idea:
 void failRangeCheck(int index, int size) {
-	throw (BadIndexException){ &arrayIndex, index, size };
+	throw (BadIndexException){ arrayIndex, index, size };
 }
 
