diff options
author | Anders Carlsson <andersca@mac.com> | 2007-11-02 16:59:10 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2007-11-02 16:59:10 +0000 |
commit | a1ff3e9290943fef18b0a1e9888854c8fd0ba5a4 (patch) | |
tree | e1c0f20ecee5f258345bc2303b9d3c880d986419 | |
parent | bd49a647afd9cc534fef13cadf652d4e9c396e2b (diff) |
Generate code for member exprs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43641 91177308-0d34-0410-b5e6-96231b3b80d8
-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; } |