On Mon, Nov 23, 2009 at 1:56 PM, Anders Carlsson <[email protected]> wrote: > --- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Mon Nov 23 15:56:41 2009 > @@ -167,7 +167,14 @@ > > Value *VisitArraySubscriptExpr(ArraySubscriptExpr *E); > Value *VisitShuffleVectorExpr(ShuffleVectorExpr *E); > - Value *VisitMemberExpr(Expr *E) { return EmitLoadOfLValue(E); } > + Value *VisitMemberExpr(MemberExpr *E) { > + if (const EnumConstantDecl *EC = > + dyn_cast<EnumConstantDecl>(E->getMemberDecl())) > + return llvm::ConstantInt::get(VMContext, EC->getInitVal()); > + > + return EmitLoadOfLValue(E); > + } > + > Value *VisitExtVectorElementExpr(Expr *E) { return EmitLoadOfLValue(E); } > Value *VisitCompoundLiteralExpr(CompoundLiteralExpr *E) { > return EmitLoadOfLValue(E);
In FuncReturningPtr()->EnumConstant, it isn't legal to skip evaluating FuncReturningPtr(). -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
