12 #ifndef LLVM_CLANG_AST_TYPELOCVISITOR_H 13 #define LLVM_CLANG_AST_TYPELOCVISITOR_H 17 #include "llvm/Support/ErrorHandling.h" 21 #define DISPATCH(CLASSNAME) \ 22 return static_cast<ImplClass*>(this)-> \ 23 Visit##CLASSNAME(TyLoc.castAs<CLASSNAME>()) 25 template<
typename ImplClass,
typename RetTy=
void>
30 #define ABSTRACT_TYPELOC(CLASS, PARENT) 31 #define TYPELOC(CLASS, PARENT) \ 32 case TypeLoc::CLASS: DISPATCH(CLASS##TypeLoc); 33 #include "clang/AST/TypeLocNodes.def" 35 llvm_unreachable(
"unexpected type loc class!");
40 #define ABSTRACT_TYPELOC(CLASS, PARENT) 41 #define TYPELOC(CLASS, PARENT) \ 42 case TypeLoc::CLASS: DISPATCH(CLASS##TypeLoc); 43 #include "clang/AST/TypeLocNodes.def" 45 llvm_unreachable(
"unexpected type loc class!");
48 #define TYPELOC(CLASS, PARENT) \ 49 RetTy Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \ 52 #include "clang/AST/TypeLocNodes.def" 61 #endif // LLVM_CLANG_AST_TYPELOCVISITOR_H
RetTy Visit(TypeLoc TyLoc)
TypeLocClass getTypeLocClass() const
Base wrapper for a particular "section" of type source info.
Wrapper of type source information for a type with no direct qualifiers.
Defines the clang::TypeLoc interface and its subclasses.
Dataflow Directional Tag Classes.
TypeLocClass getTypeLocClass() const
RetTy Visit(UnqualTypeLoc TyLoc)
RetTy VisitTypeLoc(TypeLoc TyLoc)