#include "clang/Lex/MacroInfo.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TokenKinds.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Lex/Token.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <optional>
#include <utility>
usingnamespaceclang;
namespace {
template <int> class MacroInfoSizeChecker { … };
template <> class MacroInfoSizeChecker<8> { … };
static_assert …;
}
MacroInfo::MacroInfo(SourceLocation DefLoc)
: … { … }
unsigned MacroInfo::getDefinitionLengthSlow(const SourceManager &SM) const { … }
bool MacroInfo::isIdenticalTo(const MacroInfo &Other, Preprocessor &PP,
bool Syntactically) const { … }
LLVM_DUMP_METHOD void MacroInfo::dump() const { … }
MacroDirective::DefInfo MacroDirective::getDefinition() { … }
const MacroDirective::DefInfo
MacroDirective::findDirectiveAtLoc(SourceLocation L,
const SourceManager &SM) const { … }
LLVM_DUMP_METHOD void MacroDirective::dump() const { … }
ModuleMacro *ModuleMacro::create(Preprocessor &PP, Module *OwningModule,
const IdentifierInfo *II, MacroInfo *Macro,
ArrayRef<ModuleMacro *> Overrides) { … }