Index: tests/enum.cfa
===================================================================
--- tests/enum.cfa	(revision d923fca679790b81e32b6a12debf586d34a17e72)
+++ tests/enum.cfa	(revision 8705a11c8492eccab09e0fae1cbc4c1551beace8)
@@ -1,3 +1,5 @@
-//Testing enum declaration
+// Testing the use of C enumerations in Cforall.
+
+// Testing enum declaration
 enum Colours {
 	Red,
Index: tests/enum_tests/.expect/lvalue.txt
===================================================================
--- tests/enum_tests/.expect/lvalue.txt	(revision 8705a11c8492eccab09e0fae1cbc4c1551beace8)
+++ tests/enum_tests/.expect/lvalue.txt	(revision 8705a11c8492eccab09e0fae1cbc4c1551beace8)
@@ -0,0 +1,6 @@
+enum_tests/lvalue.cfa:17:1 error: Invalid application of existing declaration(s) in expression Address of:
+  Name: C
+enum_tests/lvalue.cfa:18:1 error: Invalid application of existing declaration(s) in expression Address of:
+  Name: O
+enum_tests/lvalue.cfa:19:1 error: Invalid application of existing declaration(s) in expression Address of:
+  Name: T
Index: tests/enum_tests/lvalue.cfa
===================================================================
--- tests/enum_tests/lvalue.cfa	(revision 8705a11c8492eccab09e0fae1cbc4c1551beace8)
+++ tests/enum_tests/lvalue.cfa	(revision 8705a11c8492eccab09e0fae1cbc4c1551beace8)
@@ -0,0 +1,28 @@
+// Check that the value catagory (lvalue or not) is correct.
+
+enum EnumC {
+	C,
+};
+
+enum() EnumOpaque {
+	O,
+};
+
+enum(int) EnumTyped {
+	T = -7,
+};
+
+int main() {
+	// Enumeration labels are like literals and are rvalues.
+	&C;
+	&O;
+	&T;
+
+	// Variables of enumerations are just regular variables though.
+	EnumC c = C;
+	&c;
+	EnumOpaque o = O;
+	&o;
+	EnumTyped t = T;
+	&t;
+}
