clang API Documentation

Defines | Functions
Expr.cpp File Reference
#include "clang/AST/APValue.h"
#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 dependency graph for Expr.cpp:

Go to the source code of this file.

Defines

#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 ABSTRACT_STMT(x)
#define CASTEXPR(Type, Base)
#define STMT(Type, Base)
#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.
static const ExprskipTemporaryBindingsNoOpCastsAndParens (const Expr *E)
 Skip over any no-op casts and any temporary-binding expressions.

Define Documentation

#define ABSTRACT_STMT (   type)
#define ABSTRACT_STMT (   x)
#define ABSTRACT_STMT (   Type)
#define CASTEXPR (   Type,
  Base 
)
Value:
case Stmt::Type##Class: \
    return reinterpret_cast<CXXBaseSpecifier**>(static_cast<Type*>(this)+1);
#define EXPR (   type,
  base 
)    case Stmt::type##Class: return getExprLocImpl<type>(this, &type::getExprLoc);
#define EXPR (   Type,
  Base 
)
#define STMT (   type,
  base 
)    case Stmt::type##Class: break;
#define STMT (   Type,
  Base 
)
#define STMT (   Type,
  Base 
)    case Type##Class:

Function Documentation

static void computeDeclRefDependence ( const ASTContext Ctx,
NamedDecl D,
QualType  T,
bool TypeDependent,
bool ValueDependent,
bool InstantiationDependent 
) [static]
static const Expr* skipTemporaryBindingsNoOpCastsAndParens ( const Expr E) [static]

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

Definition at line 2592 of file Expr.cpp.

References clang::CK_NoOp, and clang::Expr::IgnoreParens().

Referenced by clang::Expr::isTemporaryObject().