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