summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/CodeGen/CGExprAgg.cpp2
-rw-r--r--clang/test/CodeGen/struct.c15
2 files changed, 16 insertions, 1 deletions
diff --git a/clang/CodeGen/CGExprAgg.cpp b/clang/CodeGen/CGExprAgg.cpp
index ea36225ba58..7646081d547 100644
--- a/clang/CodeGen/CGExprAgg.cpp
+++ b/clang/CodeGen/CGExprAgg.cpp
@@ -61,6 +61,8 @@ public:
// l-values.
void VisitDeclRefExpr(DeclRefExpr *DRE) { return EmitAggLoadOfLValue(DRE); }
+ void VisitMemberExpr(MemberExpr *ME) { return EmitAggLoadOfLValue(ME); }
+
// case Expr::ArraySubscriptExprClass:
// Operators.
diff --git a/clang/test/CodeGen/struct.c b/clang/test/CodeGen/struct.c
index 83ac4d21951..329dfdeb6d4 100644
--- a/clang/test/CodeGen/struct.c
+++ b/clang/test/CodeGen/struct.c
@@ -73,7 +73,20 @@ typedef struct {
extern range f6();
void f7()
{
- range r = f6();
+ range r = f6();
+}
+
+/* Member expressions */
+typedef struct {
+ range range1;
+ range range2;
+} rangepair;
+
+void f8()
+{
+ rangepair p;
+
+ range r = p.range1;
}
OpenPOWER on IntegriCloud