clang 19.0.0git
Classes | Namespaces | Enumerations | Functions
CGBlocks.h File Reference
#include "CGBuilder.h"
#include "CGCall.h"
#include "CGValue.h"
#include "CodeGenFunction.h"
#include "CodeGenTypes.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/Type.h"
#include "clang/Basic/TargetInfo.h"

Go to the source code of this file.

Classes

class  clang::CodeGen::BlockFlags
 
class  clang::CodeGen::BlockFieldFlags
 
class  clang::CodeGen::BlockByrefInfo
 Information about the layout of a __block variable. More...
 
class  clang::CodeGen::CGBlockInfo
 CGBlockInfo - Information to generate a block literal. More...
 
class  clang::CodeGen::CGBlockInfo::Capture
 

Namespaces

namespace  llvm
 YAML serialization mapping.
 
namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::CodeGen
 

Enumerations

enum  clang::CodeGen::BlockByrefFlags {
  clang::CodeGen::BLOCK_BYREF_HAS_COPY_DISPOSE = (1 << 25) , clang::CodeGen::BLOCK_BYREF_LAYOUT_MASK = (0xF << 28) , clang::CodeGen::BLOCK_BYREF_LAYOUT_EXTENDED = (1 << 28) , clang::CodeGen::BLOCK_BYREF_LAYOUT_NON_OBJECT = (2 << 28) ,
  clang::CodeGen::BLOCK_BYREF_LAYOUT_STRONG = (3 << 28) , clang::CodeGen::BLOCK_BYREF_LAYOUT_WEAK = (4 << 28) , clang::CodeGen::BLOCK_BYREF_LAYOUT_UNRETAINED = (5 << 28)
}
 
enum  clang::CodeGen::BlockLiteralFlags {
  clang::CodeGen::BLOCK_IS_NOESCAPE = (1 << 23) , clang::CodeGen::BLOCK_HAS_COPY_DISPOSE = (1 << 25) , clang::CodeGen::BLOCK_HAS_CXX_OBJ = (1 << 26) , clang::CodeGen::BLOCK_IS_GLOBAL = (1 << 28) ,
  clang::CodeGen::BLOCK_USE_STRET = (1 << 29) , clang::CodeGen::BLOCK_HAS_SIGNATURE = (1 << 30) , clang::CodeGen::BLOCK_HAS_EXTENDED_LAYOUT = (1u << 31)
}
 
enum  clang::CodeGen::BlockFieldFlag_t {
  clang::CodeGen::BLOCK_FIELD_IS_OBJECT = 0x03 , clang::CodeGen::BLOCK_FIELD_IS_BLOCK = 0x07 , clang::CodeGen::BLOCK_FIELD_IS_BYREF = 0x08 , clang::CodeGen::BLOCK_FIELD_IS_WEAK = 0x10 ,
  clang::CodeGen::BLOCK_FIELD_IS_ARC = 0x40 , clang::CodeGen::BLOCK_BYREF_CALLER = 128 , clang::CodeGen::BLOCK_BYREF_CURRENT_MAX = 256
}
 
enum class  clang::CodeGen::BlockCaptureEntityKind {
  clang::CodeGen::None , clang::CodeGen::CXXRecord , clang::CodeGen::ARCWeak , clang::CodeGen::ARCStrong ,
  clang::CodeGen::NonTrivialCStruct , clang::CodeGen::BlockObject
}
 Represents a type of copy/destroy operation that should be performed for an entity that's captured by a block. More...
 

Functions

BlockFlags clang::CodeGen::operator| (BlockLiteralFlags l, BlockLiteralFlags r)
 
BlockFieldFlags clang::CodeGen::operator| (BlockFieldFlag_t l, BlockFieldFlag_t r)