aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/BinaryStreamWriter.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-03-15 22:18:53 +0000
committerZachary Turner <zturner@google.com>2017-03-15 22:18:53 +0000
commitea4e60754e0556b0f28be36220354831ae532816 (patch)
tree31105bdda08b889a66aa69d5921837195ed7e51e /llvm/lib/Support/BinaryStreamWriter.cpp
parent5545407fa4c1353a212166846fe0cad47a770e67 (diff)
downloadllvm-ea4e60754e0556b0f28be36220354831ae532816.zip
llvm-ea4e60754e0556b0f28be36220354831ae532816.tar.gz
llvm-ea4e60754e0556b0f28be36220354831ae532816.tar.bz2
[pdb] Write the module info and symbol record streams.
Previously we did not have support for writing detailed module information for each module, as well as the symbol records. This patch adds support for this, and in doing so enables the ability to construct minimal PDBs from just a few lines of YAML. A test is added to illustrate this functionality. llvm-svn: 297900
Diffstat (limited to 'llvm/lib/Support/BinaryStreamWriter.cpp')
-rw-r--r--llvm/lib/Support/BinaryStreamWriter.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Support/BinaryStreamWriter.cpp b/llvm/lib/Support/BinaryStreamWriter.cpp
index 487bcdc..d60b756 100644
--- a/llvm/lib/Support/BinaryStreamWriter.cpp
+++ b/llvm/lib/Support/BinaryStreamWriter.cpp
@@ -9,6 +9,7 @@
#include "llvm/Support/BinaryStreamWriter.h"
+#include "llvm/Support/BinaryStreamError.h"
#include "llvm/Support/BinaryStreamReader.h"
#include "llvm/Support/BinaryStreamRef.h"
@@ -57,3 +58,11 @@ Error BinaryStreamWriter::writeStreamRef(BinaryStreamRef Ref, uint32_t Length) {
}
return Error::success();
}
+
+Error BinaryStreamWriter::padToAlignment(uint32_t Align) {
+ uint32_t NewOffset = alignTo(Offset, Align);
+ if (NewOffset > getLength())
+ return make_error<BinaryStreamError>(stream_error_code::stream_too_short);
+ Offset = NewOffset;
+ return Error::success();
+}