]> granicus.if.org Git - clang/commitdiff
Minor cleanup to member pointer handling.
authorEli Friedman <eli.friedman@gmail.com>
Wed, 18 Nov 2009 09:41:26 +0000 (09:41 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Wed, 18 Nov 2009 09:41:26 +0000 (09:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89201 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGExprScalar.cpp

index 5d5cd739a6bd4a695f3fbff0779e98fe1e2ed02b..e9bbf35fcd8d4dab4add3ff6e466e6e2ff535844 100644 (file)
@@ -348,6 +348,9 @@ public:
   Value *VisitBinLOr        (const BinaryOperator *E);
   Value *VisitBinComma      (const BinaryOperator *E);
 
+  Value *VisitBinPtrMemD(const Expr *E) { return EmitLoadOfLValue(E); }
+  Value *VisitBinPtrMemI(const Expr *E) { return EmitLoadOfLValue(E); }
+
   // Other Operators.
   Value *VisitBlockExpr(const BlockExpr *BE);
   Value *VisitConditionalOperator(const ConditionalOperator *CO);
@@ -539,13 +542,6 @@ EmitComplexToScalarConversion(CodeGenFunction::ComplexPairTy Src,
 //===----------------------------------------------------------------------===//
 
 Value *ScalarExprEmitter::VisitExpr(Expr *E) {
-  if (const BinaryOperator *BExpr = dyn_cast<BinaryOperator>(E))
-    if (BExpr->getOpcode() == BinaryOperator::PtrMemD) {
-      LValue LV = CGF.EmitPointerToDataMemberBinaryExpr(BExpr);
-      Value *InVal = CGF.EmitLoadOfLValue(LV, E->getType()).getScalarVal();
-      return InVal;
-    }
-  
   CGF.ErrorUnsupported(E, "scalar expression");
   if (E->getType()->isVoidType())
     return 0;