diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2008-08-23 10:51:21 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2008-08-23 10:51:21 +0000 |
| commit | c8317a44cf535253a5653526ce46ed8ebddbff7e (patch) | |
| tree | 61e4b9230af6ccc73b532c1a213e9763eaae1b4a /clang/lib/CodeGen/CGExprScalar.cpp | |
| parent | 05604e051503ab11620a01f585f77dbed06fafa1 (diff) | |
Implement Obj-C ivar references to aggregates.
Implement Obj-C lvalue message sends (aggregate returns).
Update several places to emit more precise ErrorUnsupported warnings
for currently unimplemented Obj-C features (main missing chunks are
property references, Obj-C exception handling, and the for ... in
syntax).
llvm-svn: 55234
Diffstat (limited to 'clang/lib/CodeGen/CGExprScalar.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGExprScalar.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index ddf1421b98e3..3f7b7377523f 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -134,6 +134,13 @@ public: Value *VisitObjCSelectorExpr(ObjCSelectorExpr *E); Value *VisitObjCProtocolExpr(ObjCProtocolExpr *E); Value *VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) { return EmitLoadOfLValue(E);} + Value *VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *E) { + CGF.ErrorUnsupported(E, "scalar expression (Objective-C property reference)"); + if (E->getType()->isVoidType()) + return 0; + return llvm::UndefValue::get(CGF.ConvertType(E->getType())); + } + Value *VisitArraySubscriptExpr(ArraySubscriptExpr *E); Value *VisitShuffleVectorExpr(ShuffleVectorExpr *E); Value *VisitMemberExpr(Expr *E) { return EmitLoadOfLValue(E); } |
