#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/EvaluatedExprVisitor.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/Mangle.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Lex/Lexer.h"
#include "clang/Lex/LiteralSupport.h"
#include "clang/Sema/SemaDiagnostic.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cstring>
#include "clang/AST/StmtNodes.inc"
#include "clang/AST/OperationKinds.def"
Go to the source code of this file.
|
#define | ABSTRACT_STMT(type) |
|
#define | STMT(type, base) case Stmt::type##Class: break; |
|
#define | EXPR(type, base) case Stmt::type##Class: return getExprLocImpl<type>(this, &type::getExprLoc); |
|
#define | UNARY_OPERATION(Name, Spelling) case UO_##Name: return Spelling; |
|
#define | CAST_OPERATION(Name) case CK_##Name: return #Name; |
|
#define | ABSTRACT_STMT(x) |
|
#define | CASTEXPR(Type, Base) |
|
#define | STMT(Type, Base) |
|
#define | ABSTRACT_STMT(x) |
|
#define | CASTEXPR(Type, Base) |
|
#define | STMT(Type, Base) |
|
#define | BINARY_OPERATION(Name, Spelling) case BO_##Name: return Spelling; |
|
#define | ABSTRACT_STMT(Type) |
|
#define | STMT(Type, Base) case Type##Class: |
|
#define | EXPR(Type, Base) |
|
◆ ABSTRACT_STMT [1/4]
#define ABSTRACT_STMT |
( |
|
type | ) |
|
◆ ABSTRACT_STMT [2/4]
#define ABSTRACT_STMT |
( |
|
x | ) |
|
◆ ABSTRACT_STMT [3/4]
#define ABSTRACT_STMT |
( |
|
x | ) |
|
◆ ABSTRACT_STMT [4/4]
#define ABSTRACT_STMT |
( |
|
Type | ) |
|
◆ BINARY_OPERATION
#define BINARY_OPERATION |
( |
|
Name, |
|
|
|
Spelling |
|
) |
| case BO_##Name: return Spelling; |
◆ CAST_OPERATION
#define CAST_OPERATION |
( |
|
Name | ) |
case CK_##Name: return #Name; |
◆ CASTEXPR [1/2]
Value: return
static_cast<Type *
>(
this) \
->getTrailingObjects<CastExpr::BasePathSizeTy>();
The base class of the type hierarchy.
◆ CASTEXPR [2/2]
Value: return
static_cast<Type *
>(
this)->getTrailingObjects<CXXBaseSpecifier *>();
The base class of the type hierarchy.
◆ EXPR [1/2]
#define EXPR |
( |
|
type, |
|
|
|
base |
|
) |
| case Stmt::type##Class: return getExprLocImpl<type>(this, &type::getExprLoc); |
◆ EXPR [2/2]
◆ STMT [1/4]
#define STMT |
( |
|
type, |
|
|
|
base |
|
) |
| case Stmt::type##Class: break; |
◆ STMT [2/4]
◆ STMT [3/4]
◆ STMT [4/4]
◆ UNARY_OPERATION
#define UNARY_OPERATION |
( |
|
Name, |
|
|
|
Spelling |
|
) |
| case UO_##Name: return Spelling; |
◆ computeDeclRefDependence()
Compute the type-, value-, and instantiation-dependence of a declaration reference based on the declaration being referenced.
Definition at line 236 of file Expr.cpp.
References clang::DeclarationName::CXXConversionFunctionName, clang::Stmt::DeclRefExprBits, clang::Expr::Expr(), clang::Stmt::ExprBits, clang::DeclarationName::getCXXNameType(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::DeclarationNameInfo::getInfo(), clang::ASTContext::getLangOpts(), clang::DeclarationNameInfo::getLoc(), clang::DeclarationName::getNameKind(), clang::NestedNameSpecifierLoc::getNestedNameSpecifier(), clang::TypeSourceInfo::getType(), clang::Expr::getType(), clang::if(), clang::DeclContext::isDependentContext(), clang::Type::isDependentType(), clang::Type::isIncompleteArrayType(), clang::Type::isInstantiationDependentType(), clang::SourceLocation::isValid(), and clang::OK_Ordinary.
◆ skipTemporaryBindingsNoOpCastsAndParens()
static const Expr* skipTemporaryBindingsNoOpCastsAndParens |
( |
const Expr * |
E | ) |
|
|
static |
Skip over any no-op casts and any temporary-binding expressions.
Definition at line 2712 of file Expr.cpp.