From: Daniel Dunbar Date: Tue, 12 Aug 2008 03:55:34 +0000 (+0000) Subject: Add @selector(...) codegen support. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a008db15ee50455ff98db1e4251cdda5c89a90ee;p=clang Add @selector(...) codegen support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54665 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp index 2bd39c1bd6..decf539f1c 100644 --- a/lib/CodeGen/CGExprScalar.cpp +++ b/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