clang  6.0.0svn
Macros | Functions
Expr.cpp File Reference
#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"
Include dependency graph for Expr.cpp:

Go to the source code of this file.

Macros

#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 BINARY_OPERATION(Name, Spelling)   case BO_##Name: return Spelling;
 
#define ABSTRACT_STMT(Type)
 
#define STMT(Type, Base)   case Type##Class:
 
#define EXPR(Type, Base)
 

Functions

static void computeDeclRefDependence (const ASTContext &Ctx, NamedDecl *D, QualType T, bool &TypeDependent, bool &ValueDependent, bool &InstantiationDependent)
 Compute the type-, value-, and instantiation-dependence of a declaration reference based on the declaration being referenced. More...
 
static const ExprskipTemporaryBindingsNoOpCastsAndParens (const Expr *E)
 Skip over any no-op casts and any temporary-binding expressions. More...
 

Macro Definition Documentation

◆ ABSTRACT_STMT [1/3]

#define ABSTRACT_STMT (   type)

◆ ABSTRACT_STMT [2/3]

#define ABSTRACT_STMT (   x)

◆ ABSTRACT_STMT [3/3]

#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

#define CASTEXPR (   Type,
  Base 
)
Value:
case Stmt::Type##Class: \
return static_cast<Type *>(this)->getTrailingObjects<CXXBaseSpecifier *>();
The base class of the type hierarchy.
Definition: Type.h:1353

◆ EXPR [1/2]

#define EXPR (   type,
  base 
)    case Stmt::type##Class: return getExprLocImpl<type>(this, &type::getExprLoc);

◆ EXPR [2/2]

#define EXPR (   Type,
  Base 
)

◆ STMT [1/3]

#define STMT (   type,
  base 
)    case Stmt::type##Class: break;

◆ STMT [2/3]

#define STMT (   Type,
  Base 
)

◆ STMT [3/3]

#define STMT (   Type,
  Base 
)    case Type##Class:

◆ UNARY_OPERATION

#define UNARY_OPERATION (   Name,
  Spelling 
)    case UO_##Name: return Spelling;

Function Documentation

◆ computeDeclRefDependence()

static void computeDeclRefDependence ( const ASTContext Ctx,
NamedDecl D,
QualType  T,
bool TypeDependent,
bool ValueDependent,
bool InstantiationDependent 
)
static

◆ skipTemporaryBindingsNoOpCastsAndParens()

static const Expr* skipTemporaryBindingsNoOpCastsAndParens ( const Expr E)
static

Skip over any no-op casts and any temporary-binding expressions.

Definition at line 2631 of file Expr.cpp.