<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 8, 2014 at 1:38 AM, Dmitri Gribenko <span dir="ltr"><<a href="mailto:gribozavr@gmail.com" target="_blank" class="cremed">gribozavr@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: gribozavr<br>
Date: Fri Feb 7 18:38:15 2014<br>
New Revision: 201010<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=201010&view=rev" target="_blank" class="cremed">http://llvm.org/viewvc/llvm-project?rev=201010&view=rev</a><br>
Log:<br>
ASTUnit: remove dead code in remapping files<br>
<br>
ASTUnit contains code to remap files to other files on disk. This code is not<br>
used. We only remap files to MemoryBuffers.<br>
<br>
Modified:<br>
cfe/trunk/include/clang/Frontend/ASTUnit.h<br>
cfe/trunk/lib/Frontend/ASTUnit.cpp<br>
<br>
Modified: cfe/trunk/include/clang/Frontend/ASTUnit.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/ASTUnit.h?rev=201010&r1=201009&r2=201010&view=diff" target="_blank" class="cremed">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/ASTUnit.h?rev=201010&r1=201009&r2=201010&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Frontend/ASTUnit.h (original)<br>
+++ cfe/trunk/include/clang/Frontend/ASTUnit.h Fri Feb 7 18:38:15 2014<br>
@@ -671,11 +671,9 @@ public:<br>
/// \brief Determine what kind of translation unit this AST represents.<br>
TranslationUnitKind getTranslationUnitKind() const { return TUKind; }<br>
<br>
- typedef llvm::PointerUnion<const char *, const llvm::MemoryBuffer *><br>
- FilenameOrMemBuf;<br>
/// \brief A mapping from a file name to the memory buffer that stores the<br>
/// remapped contents of that file.<br>
- typedef std::pair<std::string, FilenameOrMemBuf> RemappedFile;<br>
+ typedef std::pair<std::string, const llvm::MemoryBuffer *> RemappedFile;<br>
<br>
/// \brief Create a ASTUnit. Gets ownership of the passed CompilerInvocation.<br>
static ASTUnit *create(CompilerInvocation *CI,<br>
<br>
Modified: cfe/trunk/lib/Frontend/ASTUnit.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=201010&r1=201009&r2=201010&view=diff" target="_blank" class="cremed">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=201010&r1=201009&r2=201010&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Frontend/ASTUnit.cpp (original)<br>
+++ cfe/trunk/lib/Frontend/ASTUnit.cpp Fri Feb 7 18:38:15 2014<br>
@@ -710,54 +710,24 @@ ASTUnit *ASTUnit::LoadFromASTFile(const<br>
AST->getDiagnostics(),<br>
AST->ASTFileLangOpts,<br>
/*Target=*/0));<br>
-<br>
- for (unsigned I = 0, N = RemappedFiles.size(); I != N; ++I) {<br>
- FilenameOrMemBuf fileOrBuf = RemappedFiles[I].second;<br>
- if (const llvm::MemoryBuffer *<br>
- memBuf = fileOrBuf.dyn_cast<const llvm::MemoryBuffer *>()) {<br>
- // Create the file entry for the file that we're mapping from.<br>
- const FileEntry *FromFile<br>
- = AST->getFileManager().getVirtualFile(RemappedFiles[I].first,<br>
- memBuf->getBufferSize(),<br>
- 0);<br>
- if (!FromFile) {<br>
- AST->getDiagnostics().Report(diag::err_fe_remap_missing_from_file)<br>
- << RemappedFiles[I].first;<br>
- delete memBuf;<br>
- continue;<br>
- }<br>
-<br>
- // Override the contents of the "from" file with the contents of<br>
- // the "to" file.<br>
- AST->getSourceManager().overrideFileContents(FromFile, memBuf);<br>
<br>
- } else {<br>
- const char *fname = fileOrBuf.get<const char *>();<br>
- const FileEntry *ToFile = AST->FileMgr->getFile(fname);<br>
- if (!ToFile) {<br>
- AST->getDiagnostics().Report(diag::err_fe_remap_missing_to_file)<br>
- << RemappedFiles[I].first << fname;<br>
- continue;<br>
- }<br>
-<br>
- // Create the file entry for the file that we're mapping from.<br>
- const FileEntry *FromFile<br>
- = AST->getFileManager().getVirtualFile(RemappedFiles[I].first,<br>
- ToFile->getSize(),<br>
- 0);<br>
- if (!FromFile) {<br>
- AST->getDiagnostics().Report(diag::err_fe_remap_missing_from_file)<br>
+ for (unsigned I = 0, N = RemappedFiles.size(); I != N; ++I) {<br>
+ const llvm::MemoryBuffer *MemBuf = RemappedFiles[I].second;<br>
+ // Create the file entry for the file that we're mapping from.<br>
+ const FileEntry *FromFile = AST->getFileManager().getVirtualFile(<br>
+ RemappedFiles[I].first, MemBuf->getBufferSize(), 0);<br>
+ if (!FromFile) {<br>
+ AST->getDiagnostics().Report(diag::err_fe_remap_missing_from_file)<br>
<< RemappedFiles[I].first;<br>
- delete memBuf;<br>
- continue;<br>
- }<br>
-<br>
- // Override the contents of the "from" file with the contents of<br>
- // the "to" file.<br>
- AST->getSourceManager().overrideFileContents(FromFile, ToFile);<br>
+ delete MemBuf;<br>
+ continue;<br>
}<br>
+<br>
+ // Override the contents of the "from" file with the contents of<br>
+ // the "to" file.<br>
+ AST->getSourceManager().overrideFileContents(FromFile, MemBuf);<br>
}<br>
-<br>
+<br>
// Gather Info for preprocessor construction later on.<br>
<br>
HeaderSearch &HeaderInfo = *AST->HeaderInfo.get();<br>
@@ -2055,14 +2025,8 @@ ASTUnit *ASTUnit::LoadFromCommandLine(co<br>
<br>
// Override any files that need remapping<br>
for (unsigned I = 0, N = RemappedFiles.size(); I != N; ++I) {<br>
- FilenameOrMemBuf fileOrBuf = RemappedFiles[I].second;<br>
- if (const llvm::MemoryBuffer *<br>
- memBuf = fileOrBuf.dyn_cast<const llvm::MemoryBuffer *>()) {<br>
- CI->getPreprocessorOpts().addRemappedFile(RemappedFiles[I].first, memBuf);<br>
- } else {<br>
- const char *fname = fileOrBuf.get<const char *>();<br>
- CI->getPreprocessorOpts().addRemappedFile(RemappedFiles[I].first, fname);<br>
- }<br>
+ CI->getPreprocessorOpts().addRemappedFile(RemappedFiles[I].first,<br>
+ RemappedFiles[I].second);<br>
}<br>
PreprocessorOptions &PPOpts = CI->getPreprocessorOpts();<br>
PPOpts.RemappedFilesKeepOriginalName = RemappedFilesKeepOriginalName;<br>
@@ -2132,18 +2096,10 @@ bool ASTUnit::Reparse(ArrayRef<RemappedF<br>
}<br>
Invocation->getPreprocessorOpts().clearRemappedFiles();<br>
for (unsigned I = 0, N = RemappedFiles.size(); I != N; ++I) {<br>
- FilenameOrMemBuf fileOrBuf = RemappedFiles[I].second;<br>
- if (const llvm::MemoryBuffer *<br>
- memBuf = fileOrBuf.dyn_cast<const llvm::MemoryBuffer *>()) {<br>
- Invocation->getPreprocessorOpts().addRemappedFile(RemappedFiles[I].first,<br>
- memBuf);<br>
- } else {<br>
- const char *fname = fileOrBuf.get<const char *>();<br>
- Invocation->getPreprocessorOpts().addRemappedFile(RemappedFiles[I].first,<br>
- fname);<br>
- }<br>
+ Invocation->getPreprocessorOpts().addRemappedFile(RemappedFiles[I].first,<br>
+ RemappedFiles[I].second);<br>
}<br>
-<br>
+<br>
// If we have a preamble file lying around, or if we might try to<br>
// build a precompiled preamble, do so now.<br>
llvm::MemoryBuffer *OverrideMainBuffer = 0;<br>
@@ -2497,17 +2453,10 @@ void ASTUnit::CodeComplete(StringRef Fil<br>
PreprocessorOpts.clearRemappedFiles();<br>
PreprocessorOpts.RetainRemappedFileBuffers = true;<br>
for (unsigned I = 0, N = RemappedFiles.size(); I != N; ++I) {<br>
- FilenameOrMemBuf fileOrBuf = RemappedFiles[I].second;<br>
- if (const llvm::MemoryBuffer *<br>
- memBuf = fileOrBuf.dyn_cast<const llvm::MemoryBuffer *>()) {<br>
- PreprocessorOpts.addRemappedFile(RemappedFiles[I].first, memBuf);<br>
- OwnedBuffers.push_back(memBuf);</blockquote><div><br></div><div>Not adding MemoryBuffers to OwnedBuffers creates a memory leak. Did you intentionally remove that?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- } else {<br>
- const char *fname = fileOrBuf.get<const char *>();<br>
- PreprocessorOpts.addRemappedFile(RemappedFiles[I].first, fname);<br>
- }<br>
+ PreprocessorOpts.addRemappedFile(RemappedFiles[I].first,<br>
+ RemappedFiles[I].second);<br>
}<br>
-<br>
+<br>
// Use the code completion consumer we were given, but adding any cached<br>
// code-completion results.<br>
AugmentedCodeCompleteConsumer *AugmentedConsumer<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" class="cremed">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank" class="cremed">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div></div>