clang  6.0.0svn
Classes | Macros | Functions | Variables
Stmt.cpp File Reference
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTDiagnostic.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclGroup.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/ExprOpenMP.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtObjC.h"
#include "clang/AST/StmtOpenMP.h"
#include "clang/AST/Type.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Lex/Token.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstring>
#include <string>
#include <utility>
#include "clang/AST/StmtNodes.inc"
Include dependency graph for Stmt.cpp:

Go to the source code of this file.

Classes

struct  StmtClassNameTable
 

Macros

#define ABSTRACT_STMT(STMT)
 
#define STMT(CLASS, PARENT)
 
#define ASSERT_IMPLEMENTS_children(type)   (void) is_good(implements_children(&type::children))
 
#define ASSERT_IMPLEMENTS_getLocStart(type)   (void) is_good(implements_getLocStart(&type::getLocStart))
 
#define ASSERT_IMPLEMENTS_getLocEnd(type)   (void) is_good(implements_getLocEnd(&type::getLocEnd))
 
#define ABSTRACT_STMT(type)
 
#define STMT(type, base)
 
#define ABSTRACT_STMT(type)
 
#define STMT(type, base)
 
#define ABSTRACT_STMT(type)
 
#define STMT(type, base)
 
#define ABSTRACT_STMT(type)
 
#define STMT(type, base)
 
#define ABSTRACT_STMT(type)
 
#define STMT(type, base)
 

Functions

static StmtClassNameTablegetStmtInfoTableEntry (Stmt::StmtClass E)
 
static LLVM_ATTRIBUTE_UNUSED void check_implementations ()
 Check whether the various Stmt classes implement their member functions. More...
 
static StringRef copyIntoContext (const ASTContext &C, StringRef str)
 

Variables

static struct StmtClassNameTable StmtClassInfo [Stmt::lastStmtConstant+1]
 

Macro Definition Documentation

◆ ABSTRACT_STMT [1/6]

#define ABSTRACT_STMT (   STMT)

◆ ABSTRACT_STMT [2/6]

#define ABSTRACT_STMT (   type)

◆ ABSTRACT_STMT [3/6]

#define ABSTRACT_STMT (   type)

◆ ABSTRACT_STMT [4/6]

#define ABSTRACT_STMT (   type)

◆ ABSTRACT_STMT [5/6]

#define ABSTRACT_STMT (   type)

◆ ABSTRACT_STMT [6/6]

#define ABSTRACT_STMT (   type)

◆ ASSERT_IMPLEMENTS_children

#define ASSERT_IMPLEMENTS_children (   type)    (void) is_good(implements_children(&type::children))

Definition at line 205 of file Stmt.cpp.

◆ ASSERT_IMPLEMENTS_getLocEnd

#define ASSERT_IMPLEMENTS_getLocEnd (   type)    (void) is_good(implements_getLocEnd(&type::getLocEnd))

Definition at line 209 of file Stmt.cpp.

◆ ASSERT_IMPLEMENTS_getLocStart

#define ASSERT_IMPLEMENTS_getLocStart (   type)    (void) is_good(implements_getLocStart(&type::getLocStart))

Definition at line 207 of file Stmt.cpp.

◆ STMT [1/6]

#define STMT (   CLASS,
  PARENT 
)
Value:
StmtClassInfo[(unsigned)Stmt::CLASS##Class].Name = #CLASS; \
StmtClassInfo[(unsigned)Stmt::CLASS##Class].Size = sizeof(CLASS);
static struct StmtClassNameTable StmtClassInfo[Stmt::lastStmtConstant+1]

◆ STMT [2/6]

#define STMT (   type,
  base 
)
Value:
ASSERT_IMPLEMENTS_getLocStart(type); \
ASSERT_IMPLEMENTS_getLocEnd(type);
#define ASSERT_IMPLEMENTS_children(type)
Definition: Stmt.cpp:205

◆ STMT [3/6]

#define STMT (   type,
  base 
)
Value:
case Stmt::type##Class: \
return static_cast<type*>(this)->children();
const internal::VariadicAllOfMatcher< Type > type
Matches Types in the clang AST.
child_range children()

◆ STMT [4/6]

#define STMT (   type,
  base 
)
Value:
case Stmt::type##Class: \
return getSourceRangeImpl<type>(this, &type::getSourceRange);
const internal::VariadicAllOfMatcher< Type > type
Matches Types in the clang AST.
SourceRange getSourceRange(const SourceRange &Range)
Returns the SourceRange of a SourceRange.
Definition: FixIt.h:34

◆ STMT [5/6]

#define STMT (   type,
  base 
)
Value:
case Stmt::type##Class: \
return static_cast<const type*>(this)->getLocStart();
const internal::VariadicAllOfMatcher< Type > type
Matches Types in the clang AST.

◆ STMT [6/6]

#define STMT (   type,
  base 
)
Value:
case Stmt::type##Class: \
return static_cast<const type*>(this)->getLocEnd();
const internal::VariadicAllOfMatcher< Type > type
Matches Types in the clang AST.

Function Documentation

◆ check_implementations()

static LLVM_ATTRIBUTE_UNUSED void check_implementations ( )
inlinestatic

Check whether the various Stmt classes implement their member functions.

Definition at line 217 of file Stmt.cpp.

◆ copyIntoContext()

static StringRef copyIntoContext ( const ASTContext C,
StringRef  str 
)
static

◆ getStmtInfoTableEntry()

static StmtClassNameTable& getStmtInfoTableEntry ( Stmt::StmtClass  E)
static

Variable Documentation

◆ StmtClassInfo

struct StmtClassNameTable StmtClassInfo[Stmt::lastStmtConstant+1]
static

Referenced by clang::Stmt::PrintStats().