Index: tests/enum_tests/.expect/lvalue.txt
===================================================================
--- tests/enum_tests/.expect/lvalue.txt	(revision 9506c704946ca74a10747460a7b64c9a3a6a05c4)
+++ tests/enum_tests/.expect/lvalue.txt	(revision 9506c704946ca74a10747460a7b64c9a3a6a05c4)
@@ -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 9506c704946ca74a10747460a7b64c9a3a6a05c4)
+++ tests/enum_tests/lvalue.cfa	(revision 9506c704946ca74a10747460a7b64c9a3a6a05c4)
@@ -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;
+}
