diff options
| author | Anders Carlsson <andersca@mac.com> | 2011-04-17 21:40:34 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2011-04-17 21:40:34 +0000 |
| commit | 56c4d80a4ed3ed2fd0677561962572b9f2fdcaf4 (patch) | |
| tree | 98c21bf9efe60bd0411d60eb7560c82b2bd5f1e9 | |
| parent | 514e292b725c1c2583f833152b2c0e550e67f153 (diff) | |
| download | bcm5719-llvm-56c4d80a4ed3ed2fd0677561962572b9f2fdcaf4.tar.gz bcm5719-llvm-56c4d80a4ed3ed2fd0677561962572b9f2fdcaf4.zip | |
Add addBaseSubobjectTypeName which isn't used yet.
llvm-svn: 129671
| -rw-r--r-- | clang/lib/CodeGen/CodeGenTypes.cpp | 9 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenTypes.h | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenTypes.cpp b/clang/lib/CodeGen/CodeGenTypes.cpp index 3ec43f2fd99..f802b0738f6 100644 --- a/clang/lib/CodeGen/CodeGenTypes.cpp +++ b/clang/lib/CodeGen/CodeGenTypes.cpp @@ -511,6 +511,15 @@ CodeGenTypes::getCGRecordLayout(const RecordDecl *RD) { return *Layout; } +void CodeGenTypes::addBaseSubobjectTypeName(const CXXRecordDecl *RD, + const CGRecordLayout &layout) { + llvm::StringRef suffix; + if (layout.getBaseSubobjectLLVMType() != layout.getLLVMType()) + suffix = ".base"; + + addTagTypeName(RD, layout.getBaseSubobjectLLVMType(), suffix); +} + bool CodeGenTypes::isZeroInitializable(QualType T) { // No need to check for member pointers when not compiling C++. if (!Context.getLangOptions().CPlusPlus) diff --git a/clang/lib/CodeGen/CodeGenTypes.h b/clang/lib/CodeGen/CodeGenTypes.h index 6dd4d7bada6..a0e1caa6ed7 100644 --- a/clang/lib/CodeGen/CodeGenTypes.h +++ b/clang/lib/CodeGen/CodeGenTypes.h @@ -150,6 +150,11 @@ public: const CGRecordLayout &getCGRecordLayout(const RecordDecl*); + /// addBaseSubobjectTypeName - Add a type name for the base subobject of the + /// given record layout. + void addBaseSubobjectTypeName(const CXXRecordDecl *RD, + const CGRecordLayout &layout); + /// UpdateCompletedType - When we find the full definition for a TagDecl, /// replace the 'opaque' type we previously made for it if applicable. void UpdateCompletedType(const TagDecl *TD); |

