We always need to emit the base expression of a member expression, even when the member decl refers to an enum. Thanks to Eli for pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89775 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/member-expressions.cpp b/test/CodeGenCXX/member-expressions.cpp
index 223bab5..76b81e0 100644
--- a/test/CodeGenCXX/member-expressions.cpp
+++ b/test/CodeGenCXX/member-expressions.cpp
@@ -19,9 +19,20 @@
 }
 
 struct A {
+  A();
+  ~A();
   enum E { Foo };
 };
 
+A *g();
+
 void f(A *a) {
-  A::E e = a->Foo;
+  A::E e1 = a->Foo;
+  
+  // CHECK: call %struct.A* @_Z1gv()
+  A::E e2 = g()->Foo;
+  // CHECK: call void @_ZN1AC1Ev(
+  // CHECK: call void @_ZN1AD1Ev(
+  A::E e3 = A().Foo;
 }
+