clang  3.9.0
Macros | Functions
Frontend/FrontendActions.cpp File Reference
#include "clang/Frontend/FrontendActions.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/Basic/FileManager.h"
#include "clang/Frontend/ASTConsumers.h"
#include "clang/Frontend/ASTUnit.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/MultiplexConsumer.h"
#include "clang/Frontend/Utils.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/Pragma.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Parse/Parser.h"
#include "clang/Serialization/ASTReader.h"
#include "clang/Serialization/ASTWriter.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
#include <memory>
#include <system_error>
#include "clang/Basic/LangOptions.def"
#include "clang/Basic/DiagnosticOptions.def"
Include dependency graph for Frontend/FrontendActions.cpp:

Go to the source code of this file.

Macros

#define DUMP_BOOLEAN(Value, Text)   Out.indent(4) << Text << ": " << (Value? "Yes" : "No") << "\n"
 
#define LANGOPT(Name, Bits, Default, Description)   DUMP_BOOLEAN(LangOpts.Name, Description);
 
#define ENUM_LANGOPT(Name, Type, Bits, Default, Description)
 
#define VALUE_LANGOPT(Name, Bits, Default, Description)   Out.indent(4) << Description << ": " << LangOpts.Name << "\n";
 
#define BENIGN_LANGOPT(Name, Bits, Default, Description)
 
#define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description)
 
#define DIAGOPT(Name, Bits, Default)   DUMP_BOOLEAN(DiagOpts->Name, #Name);
 
#define ENUM_DIAGOPT(Name, Type, Bits, Default)   Out.indent(4) << #Name << ": " << DiagOpts->get##Name() << "\n";
 
#define VALUE_DIAGOPT(Name, Bits, Default)   Out.indent(4) << #Name << ": " << DiagOpts->Name << "\n";
 

Functions

static SmallVectorImpl< char > & operator+= (SmallVectorImpl< char > &Includes, StringRef RHS)
 
static void addHeaderInclude (StringRef HeaderName, SmallVectorImpl< char > &Includes, const LangOptions &LangOpts, bool IsExternC)
 
static std::error_code collectModuleHeaderIncludes (const LangOptions &LangOpts, FileManager &FileMgr, ModuleMap &ModMap, clang::Module *Module, SmallVectorImpl< char > &Includes)
 Collect the set of header includes needed to construct the given module and update the TopHeaders file set of the module. More...
 

Macro Definition Documentation

#define BENIGN_ENUM_LANGOPT (   Name,
  Type,
  Bits,
  Default,
  Description 
)
#define BENIGN_LANGOPT (   Name,
  Bits,
  Default,
  Description 
)
#define DIAGOPT (   Name,
  Bits,
  Default 
)    DUMP_BOOLEAN(DiagOpts->Name, #Name);
#define DUMP_BOOLEAN (   Value,
  Text 
)    Out.indent(4) << Text << ": " << (Value? "Yes" : "No") << "\n"

Definition at line 461 of file Frontend/FrontendActions.cpp.

#define ENUM_DIAGOPT (   Name,
  Type,
  Bits,
  Default 
)    Out.indent(4) << #Name << ": " << DiagOpts->get##Name() << "\n";
#define ENUM_LANGOPT (   Name,
  Type,
  Bits,
  Default,
  Description 
)
Value:
Out.indent(4) << Description << ": " \
<< static_cast<unsigned>(LangOpts.get##Name()) << "\n";
class LLVM_ALIGNAS(8) DependentTemplateSpecializationType const IdentifierInfo * Name
Represents a template specialization type whose template cannot be resolved, e.g. ...
Definition: Type.h:4549
#define LANGOPT (   Name,
  Bits,
  Default,
  Description 
)    DUMP_BOOLEAN(LangOpts.Name, Description);
#define VALUE_DIAGOPT (   Name,
  Bits,
  Default 
)    Out.indent(4) << #Name << ": " << DiagOpts->Name << "\n";
#define VALUE_LANGOPT (   Name,
  Bits,
  Default,
  Description 
)    Out.indent(4) << Description << ": " << LangOpts.Name << "\n";

Function Documentation

static void addHeaderInclude ( StringRef  HeaderName,
SmallVectorImpl< char > &  Includes,
const LangOptions LangOpts,
bool  IsExternC 
)
static
static std::error_code collectModuleHeaderIncludes ( const LangOptions LangOpts,
FileManager FileMgr,
ModuleMap ModMap,
clang::Module Module,
SmallVectorImpl< char > &  Includes 
)
static

Collect the set of header includes needed to construct the given module and update the TopHeaders file set of the module.

Parameters
ModuleThe module we're collecting includes from.
IncludesWill be augmented with the set of #includes or #imports needed to load all of the named headers.

Definition at line 187 of file Frontend/FrontendActions.cpp.

References addHeaderInclude(), clang::Module::addTopHeader(), End, clang::FileManager::getFile(), clang::Module::getUmbrellaDir(), clang::Module::getUmbrellaHeader(), clang::FileManager::getVirtualFileSystem(), clang::Module::Headers, clang::Module::HK_Normal, clang::Module::HK_Private, I, clang::Module::isAvailable(), clang::Module::IsExternC, clang::ModuleMap::isHeaderUnavailableInModule(), clang::Module::Parent, clang::Module::submodule_begin(), and clang::Module::submodule_end().

Referenced by clang::GenerateModuleAction::BeginSourceFileAction().

static SmallVectorImpl<char>& operator+= ( SmallVectorImpl< char > &  Includes,
StringRef  RHS 
)
static

Definition at line 156 of file Frontend/FrontendActions.cpp.