summaryrefslogtreecommitdiffstats
path: root/include/clang/Frontend/Utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Frontend/Utils.h')
-rw-r--r--include/clang/Frontend/Utils.h220
1 files changed, 0 insertions, 220 deletions
diff --git a/include/clang/Frontend/Utils.h b/include/clang/Frontend/Utils.h
deleted file mode 100644
index a5f667e..0000000
--- a/include/clang/Frontend/Utils.h
+++ /dev/null
@@ -1,220 +0,0 @@
-//===--- Utils.h - Misc utilities for the front-end -------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This header contains miscellaneous utilities for various front-end actions.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_FRONTEND_UTILS_H
-#define LLVM_CLANG_FRONTEND_UTILS_H
-
-#include "clang/Basic/Diagnostic.h"
-#include "clang/Basic/VirtualFileSystem.h"
-#include "llvm/ADT/IntrusiveRefCntPtr.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/ADT/StringSet.h"
-#include "llvm/Option/OptSpecifier.h"
-
-namespace llvm {
-class raw_fd_ostream;
-class Triple;
-
-namespace opt {
-class ArgList;
-}
-}
-
-namespace clang {
-class ASTConsumer;
-class ASTReader;
-class CompilerInstance;
-class CompilerInvocation;
-class Decl;
-class DependencyOutputOptions;
-class DiagnosticsEngine;
-class DiagnosticOptions;
-class ExternalSemaSource;
-class FileManager;
-class HeaderSearch;
-class HeaderSearchOptions;
-class IdentifierTable;
-class LangOptions;
-class PCHContainerReader;
-class Preprocessor;
-class PreprocessorOptions;
-class PreprocessorOutputOptions;
-class SourceManager;
-class Stmt;
-class TargetInfo;
-class FrontendOptions;
-
-/// Apply the header search options to get given HeaderSearch object.
-void ApplyHeaderSearchOptions(HeaderSearch &HS,
- const HeaderSearchOptions &HSOpts,
- const LangOptions &Lang,
- const llvm::Triple &triple);
-
-/// InitializePreprocessor - Initialize the preprocessor getting it and the
-/// environment ready to process a single file.
-void InitializePreprocessor(Preprocessor &PP, const PreprocessorOptions &PPOpts,
- const PCHContainerReader &PCHContainerRdr,
- const FrontendOptions &FEOpts);
-
-/// DoPrintPreprocessedInput - Implement -E mode.
-void DoPrintPreprocessedInput(Preprocessor &PP, raw_ostream* OS,
- const PreprocessorOutputOptions &Opts);
-
-/// An interface for collecting the dependencies of a compilation. Users should
-/// use \c attachToPreprocessor and \c attachToASTReader to get all of the
-/// dependencies.
-// FIXME: Migrate DependencyFileGen, DependencyGraphGen, ModuleDepCollectory to
-// use this interface.
-class DependencyCollector {
-public:
- void attachToPreprocessor(Preprocessor &PP);
- void attachToASTReader(ASTReader &R);
- llvm::ArrayRef<std::string> getDependencies() const { return Dependencies; }
-
- /// Called when a new file is seen. Return true if \p Filename should be added
- /// to the list of dependencies.
- ///
- /// The default implementation ignores <built-in> and system files.
- virtual bool sawDependency(StringRef Filename, bool FromModule,
- bool IsSystem, bool IsModuleFile, bool IsMissing);
- /// Called when the end of the main file is reached.
- virtual void finishedMainFile() { }
- /// Return true if system files should be passed to sawDependency().
- virtual bool needSystemDependencies() { return false; }
- virtual ~DependencyCollector();
-
-public: // implementation detail
- /// Add a dependency \p Filename if it has not been seen before and
- /// sawDependency() returns true.
- void maybeAddDependency(StringRef Filename, bool FromModule, bool IsSystem,
- bool IsModuleFile, bool IsMissing);
-private:
- llvm::StringSet<> Seen;
- std::vector<std::string> Dependencies;
-};
-
-/// Builds a depdenency file when attached to a Preprocessor (for includes) and
-/// ASTReader (for module imports), and writes it out at the end of processing
-/// a source file. Users should attach to the ast reader whenever a module is
-/// loaded.
-class DependencyFileGenerator {
- void *Impl; // Opaque implementation
- DependencyFileGenerator(void *Impl);
-public:
- static DependencyFileGenerator *CreateAndAttachToPreprocessor(
- Preprocessor &PP, const DependencyOutputOptions &Opts);
- void AttachToASTReader(ASTReader &R);
-};
-
-/// Collects the dependencies for imported modules into a directory. Users
-/// should attach to the AST reader whenever a module is loaded.
-class ModuleDependencyCollector {
- std::string DestDir;
- bool HasErrors;
- llvm::StringSet<> Seen;
- vfs::YAMLVFSWriter VFSWriter;
-
-public:
- StringRef getDest() { return DestDir; }
- bool insertSeen(StringRef Filename) { return Seen.insert(Filename).second; }
- void setHasErrors() { HasErrors = true; }
- void addFileMapping(StringRef VPath, StringRef RPath) {
- VFSWriter.addFileMapping(VPath, RPath);
- }
-
- void attachToASTReader(ASTReader &R);
- void writeFileMap();
- bool hasErrors() { return HasErrors; }
- ModuleDependencyCollector(std::string DestDir)
- : DestDir(DestDir), HasErrors(false) {}
- ~ModuleDependencyCollector() { writeFileMap(); }
-};
-
-/// AttachDependencyGraphGen - Create a dependency graph generator, and attach
-/// it to the given preprocessor.
- void AttachDependencyGraphGen(Preprocessor &PP, StringRef OutputFile,
- StringRef SysRoot);
-
-/// AttachHeaderIncludeGen - Create a header include list generator, and attach
-/// it to the given preprocessor.
-///
-/// \param ExtraHeaders - If not empty, will write the header filenames, just
-/// like they were included during a regular preprocessing. Useful for
-/// implicit include dependencies, like sanitizer blacklists.
-/// \param ShowAllHeaders - If true, show all header information instead of just
-/// headers following the predefines buffer. This is useful for making sure
-/// includes mentioned on the command line are also reported, but differs from
-/// the default behavior used by -H.
-/// \param OutputPath - If non-empty, a path to write the header include
-/// information to, instead of writing to stderr.
-/// \param ShowDepth - Whether to indent to show the nesting of the includes.
-/// \param MSStyle - Whether to print in cl.exe /showIncludes style.
-void AttachHeaderIncludeGen(Preprocessor &PP,
- const std::vector<std::string> &ExtraHeaders,
- bool ShowAllHeaders = false,
- StringRef OutputPath = "",
- bool ShowDepth = true, bool MSStyle = false);
-
-/// Cache tokens for use with PCH. Note that this requires a seekable stream.
-void CacheTokens(Preprocessor &PP, raw_pwrite_stream *OS);
-
-/// The ChainedIncludesSource class converts headers to chained PCHs in
-/// memory, mainly for testing.
-IntrusiveRefCntPtr<ExternalSemaSource>
-createChainedIncludesSource(CompilerInstance &CI,
- IntrusiveRefCntPtr<ExternalSemaSource> &Reader);
-
-/// createInvocationFromCommandLine - Construct a compiler invocation object for
-/// a command line argument vector.
-///
-/// \return A CompilerInvocation, or 0 if none was built for the given
-/// argument vector.
-CompilerInvocation *
-createInvocationFromCommandLine(ArrayRef<const char *> Args,
- IntrusiveRefCntPtr<DiagnosticsEngine> Diags =
- IntrusiveRefCntPtr<DiagnosticsEngine>());
-
-/// Return the value of the last argument as an integer, or a default. If Diags
-/// is non-null, emits an error if the argument is given, but non-integral.
-int getLastArgIntValue(const llvm::opt::ArgList &Args,
- llvm::opt::OptSpecifier Id, int Default,
- DiagnosticsEngine *Diags = nullptr);
-
-inline int getLastArgIntValue(const llvm::opt::ArgList &Args,
- llvm::opt::OptSpecifier Id, int Default,
- DiagnosticsEngine &Diags) {
- return getLastArgIntValue(Args, Id, Default, &Diags);
-}
-
-uint64_t getLastArgUInt64Value(const llvm::opt::ArgList &Args,
- llvm::opt::OptSpecifier Id, uint64_t Default,
- DiagnosticsEngine *Diags = nullptr);
-
-inline uint64_t getLastArgUInt64Value(const llvm::opt::ArgList &Args,
- llvm::opt::OptSpecifier Id,
- uint64_t Default,
- DiagnosticsEngine &Diags) {
- return getLastArgUInt64Value(Args, Id, Default, &Diags);
-}
-
-// When Clang->getFrontendOpts().DisableFree is set we don't delete some of the
-// global objects, but we don't want LeakDetectors to complain, so we bury them
-// in a globally visible array.
-void BuryPointer(const void *Ptr);
-template <typename T> void BuryPointer(std::unique_ptr<T> Ptr) {
- BuryPointer(Ptr.release());
-}
-
-} // end namespace clang
-
-#endif
OpenPOWER on IntegriCloud