//===--- CGExprConstant.cpp - Emit LLVM Code from Constant Expressions ----===////// 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 Constant Expr nodes as LLVM code.////===----------------------------------------------------------------------===//#include"CodeGenFunction.h"#include"CodeGenModule.h"#include"CGCXXABI.h"#include"CGObjCRuntime.h"#include"CGRecordLayout.h"#include"clang/AST/APValue.h"#include"clang/AST/ASTContext.h"#include"clang/AST/RecordLayout.h"#include"clang/AST/StmtVisitor.h"#include"clang/Basic/Builtins.h"#include"llvm/Constants.h"#include"llvm/Function.h"#include"llvm/GlobalVariable.h"#include"llvm/Target/TargetData.h"usingnamespaceclang;usingnamespaceCodeGen;//===----------------------------------------------------------------------===//// ConstStructBuilder//===----------------------------------------------------------------------===//namespace{classConstStructBuilder{CodeGenModule&CGM;CodeGenFunction*CGF;boolPacked;CharUnitsNextFieldOffsetInChars;CharUnitsLLVMStructAlignment;SmallVector<llvm::Constant*,32>Elements;public:staticllvm::Constant*BuildStruct(CodeGenModule&CGM,Code