summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/ASTUnit.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-07-24 00:42:07 +0000
committerDouglas Gregor <dgregor@apple.com>2010-07-24 00:42:07 +0000
commitf5275a833929e4a3a55246fa960daa76db719ef7 (patch)
treec4295870527f7a7388a5895bb0f9e267089ffc51 /clang/lib/Frontend/ASTUnit.cpp
parent37b740c4bfbbbdcf1b88fe2fc5eeaef1a3390700 (diff)
downloadbcm5719-llvm-f5275a833929e4a3a55246fa960daa76db719ef7.tar.gz
bcm5719-llvm-f5275a833929e4a3a55246fa960daa76db719ef7.zip
Put a newline at the end of the padded buffers used for the
precompiled preamble. This will suppress the -pedantic "no newline at end of file" warning. llvm-svn: 109301
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
-rw-r--r--clang/lib/Frontend/ASTUnit.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp
index 2168798eb7c..fa464f20658 100644
--- a/clang/lib/Frontend/ASTUnit.cpp
+++ b/clang/lib/Frontend/ASTUnit.cpp
@@ -513,7 +513,8 @@ static llvm::MemoryBuffer *CreatePaddedMainFileBuffer(llvm::MemoryBuffer *Old,
memcpy(const_cast<char*>(Result->getBufferStart()),
Old->getBufferStart(), Old->getBufferSize());
memset(const_cast<char*>(Result->getBufferStart()) + Old->getBufferSize(),
- ' ', NewSize - Old->getBufferSize() - 1);
+ ' ', NewSize - Old->getBufferSize() - 2);
+ const_cast<char*>(Result->getBufferEnd())[-2] = '\n';
const_cast<char*>(Result->getBufferEnd())[-1] = 0;
if (DeleteOld)
@@ -565,7 +566,7 @@ llvm::MemoryBuffer *ASTUnit::BuildPrecompiledPreamble() {
// the main-file buffer within the precompiled preamble to fit the
// new main file.
if (Preamble.size() == NewPreamble.second &&
- NewPreamble.first->getBufferSize() < PreambleReservedSize &&
+ NewPreamble.first->getBufferSize() < PreambleReservedSize-2 &&
memcmp(&Preamble[0], NewPreamble.first->getBufferStart(),
NewPreamble.second) == 0) {
// The preamble has not changed. We may be able to re-use the precompiled
@@ -603,9 +604,10 @@ llvm::MemoryBuffer *ASTUnit::BuildPrecompiledPreamble() {
memcpy(const_cast<char*>(PreambleBuffer->getBufferStart()),
NewPreamble.first->getBufferStart(), Preamble.size());
memset(const_cast<char*>(PreambleBuffer->getBufferStart()) + Preamble.size(),
- ' ', PreambleReservedSize - Preamble.size() - 1);
+ ' ', PreambleReservedSize - Preamble.size() - 2);
const_cast<char*>(PreambleBuffer->getBufferEnd())[-1] = 0;
-
+ const_cast<char*>(PreambleBuffer->getBufferEnd())[-2] = '\n';
+
// Save the preamble text for later; we'll need to compare against it for
// subsequent reparses.
Preamble.assign(NewPreamble.first->getBufferStart(),
OpenPOWER on IntegriCloud