clang 10.0.0git

Classes | Namespaces | Macros | Functions
TreeTransform.h File Reference
`#include "CoroutineStmtBuilder.h"`
`#include "TypeLocBuilder.h"`
`#include "clang/AST/Decl.h"`
`#include "clang/AST/DeclObjC.h"`
`#include "clang/AST/DeclTemplate.h"`
`#include "clang/AST/Expr.h"`
`#include "clang/AST/ExprConcepts.h"`
`#include "clang/AST/ExprCXX.h"`
`#include "clang/AST/ExprObjC.h"`
`#include "clang/AST/ExprOpenMP.h"`
`#include "clang/AST/OpenMPClause.h"`
`#include "clang/AST/Stmt.h"`
`#include "clang/AST/StmtCXX.h"`
`#include "clang/AST/StmtObjC.h"`
`#include "clang/AST/StmtOpenMP.h"`
`#include "clang/Sema/Designator.h"`
`#include "clang/Sema/Lookup.h"`
`#include "clang/Sema/Ownership.h"`
`#include "clang/Sema/ParsedTemplate.h"`
`#include "clang/Sema/ScopeInfo.h"`
`#include "clang/Sema/SemaDiagnostic.h"`
`#include "clang/Sema/SemaInternal.h"`
`#include "llvm/ADT/ArrayRef.h"`
`#include "llvm/Support/ErrorHandling.h"`
`#include <algorithm>`
`#include "clang/Basic/AttrList.inc"`
`#include "clang/AST/TypeLocNodes.def"`
`#include "clang/AST/StmtNodes.inc"`
`#include "clang/Basic/OpenMPKinds.def"`
`#include "clang/Basic/OperatorKinds.def"`
Include dependency graph for TreeTransform.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | clang::TreeTransform< Derived >
| A semantic tree transformation that allows one to transform one abstract syntax tree into another. More...
class | clang::TreeTransform< Derived >::TemporaryBase
| RAII object that temporarily sets the base location and entity used for reporting diagnostics in types. More...
class | clang::TemplateArgumentLocInventIterator< Derived, InputIterator >
| Iterator adaptor that invents template argument location information for each of the template arguments in its underlying iterator. More...
class | clang::TemplateArgumentLocInventIterator< Derived, InputIterator >::pointer
class | clang::TemplateArgumentLocContainerIterator< ArgLocContainer >
| Simple iterator that traverses the template arguments in a container that provides a `getArgLoc()` member function. More...
class | clang::TemplateArgumentLocContainerIterator< ArgLocContainer >::pointer

## Namespaces
| clang
| Dataflow Directional Tag Classes.

## Macros
#define | ATTR(X)
| Transform the specified attribute. More...
#define | PRAGMA_SPELLING_ATTR(X) const X##Attr *Transform##X##Attr(const X##Attr *R) { return R; }
#define | ABSTRACT_TYPELOC(CLASS, PARENT)
#define | TYPELOC(CLASS, PARENT) QualType Transform##CLASS##Type(TypeLocBuilder &TLB, CLASS##TypeLoc T);
#define | STMT(Node, Parent)
#define | VALUESTMT(Node, Parent)
#define | EXPR(Node, Parent)
#define | ABSTRACT_STMT(Stmt)
#define | OPENMP_CLAUSE(Name, Class)
#define | STMT(Node, Parent) case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(S));
#define | VALUESTMT(Node, Parent)
#define | ABSTRACT_STMT(Node)
#define | EXPR(Node, Parent)
#define | STMT(Node, Parent)
#define | ABSTRACT_STMT(Stmt)
#define | EXPR(Node, Parent) case Stmt::Node##Class:
#define | OPENMP_CLAUSE(Name, Class)
#define | STMT(Node, Parent) case Stmt::Node##Class: break;
#define | ABSTRACT_STMT(Stmt)
#define | EXPR(Node, Parent) case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(E));
#define | ABSTRACT_TYPELOC(CLASS, PARENT)
#define | TYPELOC(CLASS, PARENT)
#define | ATTR(X)
| Transform the specified attribute. More...
#define | PRAGMA_SPELLING_ATTR(X)
#define | OVERLOADED_OPERATOR(Name, Spelling, Token, Unary, Binary, MemberOnly) case OO_##Name:
#define | OVERLOADED_OPERATOR_MULTI(Name, Spelling, Unary, Binary, MemberOnly)

## Functions
template<class TyLoc >
static QualType | clang::TransformTypeSpecType (TypeLocBuilder &TLB, TyLoc T)
template<typename Derived , class T >
bool | clang::transformOMPMappableExprListClause (TreeTransform< Derived > &TT, OMPMappableExprListClause< T > *C, llvm::SmallVectorImpl< Expr *> &Vars, CXXScopeSpec &MapperIdScopeSpec, DeclarationNameInfo &MapperIdInfo, llvm::SmallVectorImpl< Expr *> &UnresolvedMappers)

## Macro Definition Documentation

## ◆ ABSTRACT_STMT [1/4]

#define ABSTRACT_STMT | ( |  | Stmt | ) |

Definition at line 714 of file TreeTransform.h.

## ◆ ABSTRACT_STMT [2/4]

#define ABSTRACT_STMT | ( |  | Node | ) |

Definition at line 714 of file TreeTransform.h.

## ◆ ABSTRACT_STMT [3/4]

#define ABSTRACT_STMT | ( |  | Stmt | ) |

Definition at line 714 of file TreeTransform.h.

## ◆ ABSTRACT_STMT [4/4]

#define ABSTRACT_STMT | ( |  | Stmt | ) |

Definition at line 714 of file TreeTransform.h.

## ◆ ABSTRACT_TYPELOC [1/2]

#define ABSTRACT_TYPELOC | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Definition at line 617 of file TreeTransform.h.

## ◆ ABSTRACT_TYPELOC [2/2]

#define ABSTRACT_TYPELOC | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Definition at line 617 of file TreeTransform.h.

## ◆ ATTR [1/2]

#define ATTR | ( |  | X | ) |

Transform the specified attribute.

Subclasses should override the transformation of attributes with a pragma spelling to transform expressions stored within the attribute.

Returns
  the transformed attribute.

Definition at line 374 of file TreeTransform.h.

## ◆ ATTR [2/2]

#define ATTR | ( |  | X | ) |

Transform the specified attribute.

Subclasses should override the transformation of attributes with a pragma spelling to transform expressions stored within the attribute.

Returns
  the transformed attribute.

Definition at line 374 of file TreeTransform.h.

## ◆ EXPR [1/4]

#define EXPR | ( |  | Node,
|  |  | Parent
| ) |  |

Value:
LLVM_ATTRIBUTE_NOINLINE \
ExprResult Transform##Node(Node *E);
Node
ast_type_traits::DynTypedNode Node
Definition: ASTMatchFinder.cpp:60

Definition at line 711 of file TreeTransform.h.

## ◆ EXPR [2/4]

#define EXPR | ( |  | Node,
|  |  | Parent
| ) |  |

Definition at line 711 of file TreeTransform.h.

## ◆ EXPR [3/4]

#define EXPR | ( |  | Node,
|  |  | Parent
| ) |  | case Stmt::Node##Class:

Definition at line 711 of file TreeTransform.h.

## ◆ EXPR [4/4]

#define EXPR | ( |  | Node,
|  |  | Parent
| ) |  | case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(E));

Definition at line 711 of file TreeTransform.h.

## ◆ OPENMP_CLAUSE [1/2]

#define OPENMP_CLAUSE | ( |  | Name,
|  |  | Class
| ) |  |

Value:
LLVM_ATTRIBUTE_NOINLINE \
OMPClause *Transform ## Class(Class *S);
clang::index::SymbolKind::Class

Definition at line 717 of file TreeTransform.h.

## ◆ OPENMP_CLAUSE [2/2]

#define OPENMP_CLAUSE | ( |  | Name,
|  |  | Class
| ) |  |

Value:
case OMPC_ ## Name : \
return getDerived().Transform ## Class(cast<Class>(S));
clang::index::SymbolKind::Class

Definition at line 717 of file TreeTransform.h.

## ◆ OVERLOADED_OPERATOR

#define OVERLOADED_OPERATOR | ( |  | Name,
|  |  | Spelling,
|  |  | Token,
|  |  | Unary,
|  |  | Binary,
|  |  | MemberOnly
| ) |  | case OO_##Name:

## ◆ OVERLOADED_OPERATOR_MULTI

#define OVERLOADED_OPERATOR_MULTI | ( |  | Name,
|  |  | Spelling,
|  |  | Unary,
|  |  | Binary,
|  |  | MemberOnly
| ) |  |

## ◆ PRAGMA_SPELLING_ATTR [1/2]

#define PRAGMA_SPELLING_ATTR | ( |  | X | ) | const X##Attr *Transform##X##Attr(const X##Attr *R) { return R; }

Definition at line 375 of file TreeTransform.h.

## ◆ PRAGMA_SPELLING_ATTR [2/2]

#define PRAGMA_SPELLING_ATTR | ( |  | X | ) |

Value:
case attr::X: \
return getDerived().Transform##X##Attr(cast<X##Attr>(R));
X
X
Add a minimal nested name specifier fixit hint to allow lookup of a tag name from an outer enclosing ...
Definition: SemaDecl.cpp:14780

Definition at line 375 of file TreeTransform.h.

## ◆ STMT [1/4]

#define STMT | ( |  | Node,
|  |  | Parent
| ) |  |

Value:
LLVM_ATTRIBUTE_NOINLINE \
StmtResult Transform##Node(Node *S);
Node
ast_type_traits::DynTypedNode Node
Definition: ASTMatchFinder.cpp:60

Definition at line 705 of file TreeTransform.h.

## ◆ STMT [2/4]

#define STMT | ( |  | Node,
|  |  | Parent
| ) |  | case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(S));

Definition at line 705 of file TreeTransform.h.

## ◆ STMT [3/4]

#define STMT | ( |  | Node,
|  |  | Parent
| ) |  |

Definition at line 705 of file TreeTransform.h.

## ◆ STMT [4/4]

#define STMT | ( |  | Node,
|  |  | Parent
| ) |  | case Stmt::Node##Class: break;

Definition at line 705 of file TreeTransform.h.

## ◆ TYPELOC [1/2]

#define TYPELOC | ( |  | CLASS,
|  |  | PARENT
| ) |  | QualType Transform##CLASS##Type(TypeLocBuilder &TLB, CLASS##TypeLoc T);

Definition at line 618 of file TreeTransform.h.

## ◆ TYPELOC [2/2]

#define TYPELOC | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Value:
case TypeLoc::CLASS: \
return getDerived().Transform##CLASS##Type(TLB, \
T.castAs<CLASS##TypeLoc>());
Type
Optional< types::ID > Type
Definition: InterpolatingCompilationDatabase.cpp:127

Definition at line 618 of file TreeTransform.h.

## ◆ VALUESTMT [1/2]

#define VALUESTMT | ( |  | Node,
|  |  | Parent
| ) |  |

Value:
LLVM_ATTRIBUTE_NOINLINE \
StmtResult Transform##Node(Node *S, StmtDiscardKind SDK);
Node
ast_type_traits::DynTypedNode Node
Definition: ASTMatchFinder.cpp:60

Definition at line 708 of file TreeTransform.h.

## ◆ VALUESTMT [2/2]

#define VALUESTMT | ( |  | Node,
|  |  | Parent
| ) |  |

Value:
case Stmt::Node##Class: \
return getDerived().Transform##Node(cast<Node>(S), SDK);
clang::index::SymbolKind::Class
Node
ast_type_traits::DynTypedNode Node
Definition: ASTMatchFinder.cpp:60

Definition at line 708 of file TreeTransform.h.