diff options
author | Duncan Sands <baldrick@free.fr> | 2008-03-21 15:53:17 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2008-03-21 15:53:17 +0000 |
commit | 495304e35125ee951bc7667554bf8c9e3009e311 (patch) | |
tree | 92ab55443a974812de4c74371c71115f47ec78ae | |
parent | 276dcbdc8db6614cfd5004dc7dc35e437ddf9c58 (diff) | |
download | llvm-495304e35125ee951bc7667554bf8c9e3009e311.tar.gz llvm-495304e35125ee951bc7667554bf8c9e3009e311.tar.bz2 llvm-495304e35125ee951bc7667554bf8c9e3009e311.tar.xz |
Make it possible to get an empty struct using
the new StructType::get method. The second NULL
is to pacify the gcc warning mechanism. This
patch compiles but is otherwise untested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48645 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/DerivedTypes.h | 5 | ||||
-rw-r--r-- | lib/VMCore/Type.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h index 7fc7ed6a91..5f4569cfd1 100644 --- a/include/llvm/DerivedTypes.h +++ b/include/llvm/DerivedTypes.h @@ -221,8 +221,9 @@ public: bool isPacked=false); /// StructType::get - This static method is a convenience method for - /// creating structure types by specifying the elements as arguments. Note - /// that this method always returns a non-packed struct. + /// creating structure types by specifying the elements as arguments. + /// Note that this method always returns a non-packed struct. To get + /// an empty struct, pass NULL, NULL. static StructType *get(const Type *type, ...) END_WITH_NULL; // Iterator access to the elements diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index 4554826c34..829923e15a 100644 --- a/lib/VMCore/Type.cpp +++ b/lib/VMCore/Type.cpp @@ -1252,9 +1252,10 @@ StructType *StructType::get(const Type *type, ...) { va_list ap; std::vector<const llvm::Type*> StructFields; va_start(ap, type); - do { + while (type) { StructFields.push_back(type); - } while ((type = va_arg(ap, llvm::Type*))); + type = va_arg(ap, llvm::Type*); + } return llvm::StructType::get(StructFields); } |