From: Douglas Gregor Date: Sat, 24 Jul 2010 00:42:07 +0000 (+0000) Subject: Put a newline at the end of the padded buffers used for the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=592508ed997e52207cf380f9b6eb9943994ad7ae;p=clang 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109301 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp index 2168798eb7..fa464f2065 100644 --- a/lib/Frontend/ASTUnit.cpp +++ b/lib/Frontend/ASTUnit.cpp @@ -513,7 +513,8 @@ static llvm::MemoryBuffer *CreatePaddedMainFileBuffer(llvm::MemoryBuffer *Old, memcpy(const_cast(Result->getBufferStart()), Old->getBufferStart(), Old->getBufferSize()); memset(const_cast(Result->getBufferStart()) + Old->getBufferSize(), - ' ', NewSize - Old->getBufferSize() - 1); + ' ', NewSize - Old->getBufferSize() - 2); + const_cast(Result->getBufferEnd())[-2] = '\n'; const_cast(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(PreambleBuffer->getBufferStart()), NewPreamble.first->getBufferStart(), Preamble.size()); memset(const_cast(PreambleBuffer->getBufferStart()) + Preamble.size(), - ' ', PreambleReservedSize - Preamble.size() - 1); + ' ', PreambleReservedSize - Preamble.size() - 2); const_cast(PreambleBuffer->getBufferEnd())[-1] = 0; - + const_cast(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(),