summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2008-03-21 15:53:17 +0000
committerDuncan Sands <baldrick@free.fr>2008-03-21 15:53:17 +0000
commit495304e35125ee951bc7667554bf8c9e3009e311 (patch)
tree92ab55443a974812de4c74371c71115f47ec78ae
parent276dcbdc8db6614cfd5004dc7dc35e437ddf9c58 (diff)
downloadllvm-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.h5
-rw-r--r--lib/VMCore/Type.cpp5
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);
}