clang API Documentation

Defines | 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/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.

Defines

#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 addHeaderInclude (const FileEntry *Header, 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.

Define 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 415 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 addHeaderInclude ( const FileEntry Header,
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 177 of file Frontend/FrontendActions.cpp.

References addHeaderInclude(), clang::Module::addTopHeader(), clang::FileManager::getFile(), clang::Module::getUmbrellaDir(), clang::Module::getUmbrellaHeader(), clang::Module::isAvailable(), clang::Module::IsExternC, clang::ModuleMap::isHeaderUnavailableInModule(), clang::Module::NormalHeaders, 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 130 of file Frontend/FrontendActions.cpp.