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 */