Implement dereference operator in aggregate expression

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45020 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CGExprAgg.cpp b/CodeGen/CGExprAgg.cpp
index b0e360f..1d8b311 100644
--- a/CodeGen/CGExprAgg.cpp
+++ b/CodeGen/CGExprAgg.cpp
@@ -61,6 +61,7 @@
   // l-values.
   void VisitDeclRefExpr(DeclRefExpr *DRE) { return EmitAggLoadOfLValue(DRE); }
   void VisitMemberExpr(MemberExpr *ME) { return EmitAggLoadOfLValue(ME); }
+  void VisitUnaryDeref(UnaryOperator *E) { return EmitAggLoadOfLValue(E); }
   
   //  case Expr::ArraySubscriptExprClass:
 
diff --git a/test/CodeGen/struct.c b/test/CodeGen/struct.c
index 574cec9..34cbec5 100644
--- a/test/CodeGen/struct.c
+++ b/test/CodeGen/struct.c
@@ -89,6 +89,10 @@
   range r = p.range1;
 }
 
+void f9(range *p)
+{
+  range r = *p;
+}
 
 /* _Bool types */