summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-08-12 03:55:34 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-08-12 03:55:34 +0000
commitbceb904f91e04103dabe383540369b85bd68e423 (patch)
tree6c069ff663450160a34c472be7625a188e651e4c /clang/lib/CodeGen
parentcb515c8b0a2294b5f7bfd09ebfe6b0eaa723c3a8 (diff)
downloadbcm5719-llvm-bceb904f91e04103dabe383540369b85bd68e423.tar.gz
bcm5719-llvm-bceb904f91e04103dabe383540369b85bd68e423.zip
Add @selector(...) codegen support.
llvm-svn: 54665
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/CGExprScalar.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp
index 2bd39c1bd6b..decf539f1c8 100644
--- a/clang/lib/CodeGen/CGExprScalar.cpp
+++ b/clang/lib/CodeGen/CGExprScalar.cpp
@@ -134,6 +134,7 @@ public:
return EmitLoadOfLValue(E);
}
Value *VisitObjCMessageExpr(ObjCMessageExpr *E);
+ Value *VisitObjCSelectorExpr(ObjCSelectorExpr *E);
Value *VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) { return EmitLoadOfLValue(E);}
Value *VisitArraySubscriptExpr(ArraySubscriptExpr *E);
Value *VisitShuffleVectorExpr(ShuffleVectorExpr *E);
@@ -501,6 +502,10 @@ Value *ScalarExprEmitter::VisitObjCMessageExpr(ObjCMessageExpr *E) {
&Args[0], Args.size());
}
+Value *ScalarExprEmitter::VisitObjCSelectorExpr(ObjCSelectorExpr *E) {
+ return Runtime->GetSelector(Builder, E->getSelector());
+}
+
Value *ScalarExprEmitter::VisitArraySubscriptExpr(ArraySubscriptExpr *E) {
// Emit subscript expressions in rvalue context's. For most cases, this just
// loads the lvalue formed by the subscript expr. However, we have to be
OpenPOWER on IntegriCloud