]> granicus.if.org Git - clang/commitdiff
Add addBaseSubobjectTypeName which isn't used yet.
authorAnders Carlsson <andersca@mac.com>
Sun, 17 Apr 2011 21:40:34 +0000 (21:40 +0000)
committerAnders Carlsson <andersca@mac.com>
Sun, 17 Apr 2011 21:40:34 +0000 (21:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129671 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CodeGenTypes.cpp
lib/CodeGen/CodeGenTypes.h

index 3ec43f2fd99d95a7801b2dbd10f6041a10b919b7..f802b0738f6740796765cc7c3b1fe3811f711dbd 100644 (file)
@@ -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)
index 6dd4d7bada6f99cecaf99c3aba3bf1a0558da136..a0e1caa6ed73a2f420c812ec68a5c2877729c626 100644 (file)
@@ -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);