Esempio n. 1
0
ComplexValueTy ComplexExprEmitter::VisitMemberExpr(const MemberExpr *E) {
  auto Val = CGF.EmitAggregateExpr(E->getTarget());
  return CGF.EmitComplexLoad(CGF.EmitAggregateMember(Val.getAggregateAddr(), E->getField()),
                             Val.isVolatileQualifier());
}
Esempio n. 2
0
void CodeGenFunction::EmitAggregateAssignment(const Expr *LHS, const Expr *RHS) {
  auto Val = EmitAggregateExpr(RHS);
  auto Dest = EmitLValue(LHS);
  Builder.CreateStore(Builder.CreateLoad(Val.getAggregateAddr(), Val.isVolatileQualifier()),
                      Dest.getPointer(), Dest.isVolatileQualifier());
}
Esempio n. 3
0
CharacterValueTy CharacterExprEmitter::VisitMemberExpr(const MemberExpr *E) {
  auto Val = CGF.EmitAggregateExpr(E->getTarget());
  return CGF.GetCharacterValueFromPtr(CGF.EmitAggregateMember(Val.getAggregateAddr(), E->getField()),
                                      E->getType());
}
Esempio n. 4
0
RValueTy AggregateExprEmitter::VisitMemberExpr(const MemberExpr *E) {
  auto Val = EmitExpr(E->getTarget());
  return RValueTy::getAggregate(CGF.EmitAggregateMember(Val.getAggregateAddr(), E->getField()),
                                Val.isVolatileQualifier());
}