clang  3.7.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 std::error_code 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 441 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";
#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 std::error_code 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 182 of file Frontend/FrontendActions.cpp.

References addHeaderInclude(), clang::Module::addTopHeader(), End, clang::FileManager::getFile(), clang::Module::getUmbrellaDir(), clang::Module::getUmbrellaHeader(), clang::Module::Headers, clang::Module::HK_Normal, 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 150 of file Frontend/FrontendActions.cpp.