summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2007-11-02 16:59:10 +0000
committerAnders Carlsson <andersca@mac.com>2007-11-02 16:59:10 +0000
commitbfd60eedd7d4365fa7399c8a37bdd59d34a1e04d (patch)
treebd660c27d2406f8dd4fc3c47f84b4be2f6a69494
parentf859ef293c14f7b9e8f3c3761917660755eafb24 (diff)
downloadbcm5719-llvm-bfd60eedd7d4365fa7399c8a37bdd59d34a1e04d.tar.gz
bcm5719-llvm-bfd60eedd7d4365fa7399c8a37bdd59d34a1e04d.zip
Generate code for member exprs.
llvm-svn: 43641
-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