diff options
-rw-r--r-- | CodeGen/CGExprAgg.cpp | 2 | ||||
-rw-r--r-- | test/CodeGen/struct.c | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/CodeGen/CGExprAgg.cpp b/CodeGen/CGExprAgg.cpp index ea36225ba5..7646081d54 100644 --- a/CodeGen/CGExprAgg.cpp +++ b/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/test/CodeGen/struct.c b/test/CodeGen/struct.c index 83ac4d2195..329dfdeb6d 100644 --- a/test/CodeGen/struct.c +++ b/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; } |