diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2010-03-30 22:26:10 +0000 | 
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2010-03-30 22:26:10 +0000 | 
| commit | 072d0bb2474f6bcdc3ab8542f536588ae89d2cfa (patch) | |
| tree | 11059c1a5059c940d9c19b5613c0fb6363eb97b2 /clang/lib/CodeGen | |
| parent | f4ffa0dabfb6cb9c6607a8954f99719b86e856f4 (diff) | |
| download | bcm5719-llvm-072d0bb2474f6bcdc3ab8542f536588ae89d2cfa.tar.gz bcm5719-llvm-072d0bb2474f6bcdc3ab8542f536588ae89d2cfa.zip  | |
IRgen: Move CGRecordLayout to its own happy little file.
llvm-svn: 99945
Diffstat (limited to 'clang/lib/CodeGen')
| -rw-r--r-- | clang/lib/CodeGen/CGExprConstant.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGRecordLayout.h | 48 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGRecordLayoutBuilder.cpp | 2 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenTypes.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenTypes.h | 30 | 
5 files changed, 52 insertions, 30 deletions
diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index 66b2c086c26..c86c6aa2d65 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -14,6 +14,7 @@  #include "CodeGenFunction.h"  #include "CodeGenModule.h"  #include "CGObjCRuntime.h" +#include "CGRecordLayout.h"  #include "clang/AST/APValue.h"  #include "clang/AST/ASTContext.h"  #include "clang/AST/RecordLayout.h" diff --git a/clang/lib/CodeGen/CGRecordLayout.h b/clang/lib/CodeGen/CGRecordLayout.h new file mode 100644 index 00000000000..58c5f60f0c2 --- /dev/null +++ b/clang/lib/CodeGen/CGRecordLayout.h @@ -0,0 +1,48 @@ +//===--- CGRecordLayout.h - LLVM Record Layout Information ------*- C++ -*-===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef CLANG_CODEGEN_CGRECORDLAYOUT_H +#define CLANG_CODEGEN_CGRECORDLAYOUT_H + +namespace clang { +namespace CodeGen { + +/// CGRecordLayout - This class handles struct and union layout info while +/// lowering AST types to LLVM types. +class CGRecordLayout { +  CGRecordLayout(const CGRecordLayout&); // DO NOT IMPLEMENT +  void operator=(const CGRecordLayout&); // DO NOT IMPLEMENT + +  /// The LLVMType corresponding to this record layout. +  const llvm::Type *LLVMType; + +  /// Whether one of the fields in this record layout is a pointer to data +  /// member, or a struct that contains pointer to data member. +  bool ContainsPointerToDataMember; + +public: +  CGRecordLayout(const llvm::Type *T, bool ContainsPointerToDataMember) +    : LLVMType(T), ContainsPointerToDataMember(ContainsPointerToDataMember) {} + +  /// getLLVMType - Return llvm type associated with this record. +  const llvm::Type *getLLVMType() const { +    return LLVMType; +  } + +  /// containsPointerToDataMember - Whether this struct contains pointers to +  /// data members. +  bool containsPointerToDataMember() const { +    return ContainsPointerToDataMember; +  } +}; + +}  // end namespace CodeGen +}  // end namespace clang + +#endif diff --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp index baafd6836c6..4c77d2d2e0c 100644 --- a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -12,7 +12,7 @@  //===----------------------------------------------------------------------===//  #include "CGRecordLayoutBuilder.h" - +#include "CGRecordLayout.h"  #include "clang/AST/ASTContext.h"  #include "clang/AST/Attr.h"  #include "clang/AST/DeclCXX.h" diff --git a/clang/lib/CodeGen/CodeGenTypes.cpp b/clang/lib/CodeGen/CodeGenTypes.cpp index 4f37537769f..285d60a70f4 100644 --- a/clang/lib/CodeGen/CodeGenTypes.cpp +++ b/clang/lib/CodeGen/CodeGenTypes.cpp @@ -12,6 +12,7 @@  //===----------------------------------------------------------------------===//  #include "CodeGenTypes.h" +#include "CGRecordLayout.h"  #include "clang/AST/ASTContext.h"  #include "clang/AST/DeclObjC.h"  #include "clang/AST/DeclCXX.h" diff --git a/clang/lib/CodeGen/CodeGenTypes.h b/clang/lib/CodeGen/CodeGenTypes.h index 9a620e4c012..c8bced32d3d 100644 --- a/clang/lib/CodeGen/CodeGenTypes.h +++ b/clang/lib/CodeGen/CodeGenTypes.h @@ -52,37 +52,9 @@ namespace clang {    typedef CanQual<Type> CanQualType;  namespace CodeGen { +  class CGRecordLayout;    class CodeGenTypes; -  /// CGRecordLayout - This class handles struct and union layout info while -  /// lowering AST types to LLVM types. -  class CGRecordLayout { -    CGRecordLayout(); // DO NOT IMPLEMENT - -    /// LLVMType - The LLVMType corresponding to this record layout. -    const llvm::Type *LLVMType; - -    /// ContainsPointerToDataMember - Whether one of the fields in this record  -    /// layout is a pointer to data member, or a struct that contains pointer to -    /// data member. -    bool ContainsPointerToDataMember; - -  public: -    CGRecordLayout(const llvm::Type *T, bool ContainsPointerToDataMember) -      : LLVMType(T), ContainsPointerToDataMember(ContainsPointerToDataMember) {} - -    /// getLLVMType - Return llvm type associated with this record. -    const llvm::Type *getLLVMType() const { -      return LLVMType; -    } - -    /// containsPointerToDataMember - Whether this struct contains pointers to -    /// data members. -    bool containsPointerToDataMember() const { -      return ContainsPointerToDataMember; -    } -  }; -  /// CodeGenTypes - This class organizes the cross-module state that is used  /// while lowering AST types to LLVM types.  class CodeGenTypes {  | 

