//===--- CGExprScalar.cpp - Emit LLVM Code for Scalar Exprs ---------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This contains code to emit Expr nodes with scalar LLVM types as LLVM code.////===----------------------------------------------------------------------===//#include"CodeGenFunction.h"#include"CodeGenModule.h"#include"clang/AST/ASTContext.h"#include"clang/AST/DeclObjC.h"#include"clang/AST/RecordLayout.h"#include"clang/AST/StmtVisitor.h"#include"clang/Basic/TargetInfo.h"#include"llvm/Constants.h"#include"llvm/Function.h"#include"llvm/GlobalVariable.h"#include"llvm/Intrinsics.h"#include"llvm/Module.h"#include"llvm/Support/Compiler.h"#include"llvm/Support/CFG.h"#include"llvm/Target/TargetData.h"#include<cstdarg>usingnamespaceclang;usingnamespaceCodeGen;usingllvm::Value;//===----------------------------------------------------------------------===//// Scalar Expression Emitter//===----------------------------------------------------------------------===//structBinOpInfo{Value*LHS;Value*RHS;QualTypeTy;// Computation Type.constBinaryOperator*E;};namespace{classVISIBILITY_HIDDENScalarExprEmitter:publicStmtVisitor<ScalarExprEmitter,Value*>{CodeGenFunction