clang API Documentation

Enumerations | Functions | Variables
CGObjCMac.cpp File Reference
#include "CGObjCRuntime.h"
#include "CGBlocks.h"
#include "CGCleanup.h"
#include "CGRecordLayout.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/StmtObjC.h"
#include "clang/Basic/LangOptions.h"
#include "clang/CodeGen/CGFunctionInfo.h"
#include "clang/Frontend/CodeGenOptions.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/IR/CallSite.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/raw_ostream.h"
#include <cstdio>
Include dependency graph for CGObjCMac.cpp:

Go to the source code of this file.

Enumerations

enum  { kCFTaggedObjectID_Integer = (1 << 1) + 1 }
enum  FragileClassFlags { FragileABI_Class_Factory = 0x00001, FragileABI_Class_Meta = 0x00002, FragileABI_Class_HasCXXStructors = 0x02000, FragileABI_Class_Hidden = 0x20000 }
enum  NonFragileClassFlags {
  NonFragileABI_Class_Meta = 0x00001, NonFragileABI_Class_Root = 0x00002, NonFragileABI_Class_HasCXXStructors = 0x00004, NonFragileABI_Class_Hidden = 0x00010,
  NonFragileABI_Class_Exception = 0x00020, NonFragileABI_Class_HasIvarReleaser = 0x00040, NonFragileABI_Class_CompiledByARC = 0x00080, NonFragileABI_Class_HasCXXDestructorOnly = 0x00100
}
enum  ImageInfoFlags {
  eImageInfo_FixAndContinue = (1 << 0), eImageInfo_GarbageCollected = (1 << 1), eImageInfo_GCOnly = (1 << 2), eImageInfo_OptimizedByDyld = (1 << 3),
  eImageInfo_CorrectedSynthesize = (1 << 4), eImageInfo_ImageIsSimulated = (1 << 5)
}

Functions

static llvm::Constant * getConstantGEP (llvm::LLVMContext &VMContext, llvm::Constant *C, unsigned idx0, unsigned idx1)
 getConstantGEP() - Help routine to construct simple GEPs.
static bool hasObjCExceptionAttribute (ASTContext &Context, const ObjCInterfaceDecl *OID)
static Qualifiers::GC GetGCAttrTypeForType (ASTContext &Ctx, QualType FQT)
static void addIfPresent (llvm::DenseSet< llvm::Value * > &S, llvm::Value *V)

Variables

static const int ModuleVersion = 7

Enumeration Type Documentation

anonymous enum
Enumerator:
kCFTaggedObjectID_Integer 

Definition at line 1774 of file CGObjCMac.cpp.

Enumerator:
FragileABI_Class_Factory 
FragileABI_Class_Meta 
FragileABI_Class_HasCXXStructors 
FragileABI_Class_Hidden 

Definition at line 2961 of file CGObjCMac.cpp.

EmitImageInfo - Emit the image info marker used to encode some module level information.

See: <rdr://4810609&4810587&4810587> struct IMAGE_INFO { unsigned version; unsigned flags; };

Enumerator:
eImageInfo_FixAndContinue 
eImageInfo_GarbageCollected 
eImageInfo_GCOnly 
eImageInfo_OptimizedByDyld 
eImageInfo_CorrectedSynthesize 
eImageInfo_ImageIsSimulated 

Definition at line 4236 of file CGObjCMac.cpp.

Enumerator:
NonFragileABI_Class_Meta 

Is a meta-class.

NonFragileABI_Class_Root 

Is a root class.

NonFragileABI_Class_HasCXXStructors 

Has a C++ constructor and destructor.

NonFragileABI_Class_Hidden 

Has hidden visibility.

NonFragileABI_Class_Exception 

Has the exception attribute.

NonFragileABI_Class_HasIvarReleaser 

(Obsolete) ARC-specific: this class has a .release_ivars method

NonFragileABI_Class_CompiledByARC 

Class implementation was compiled under ARC.

NonFragileABI_Class_HasCXXDestructorOnly 

Class has non-trivial destructors, but zero-initialization is okay.

Definition at line 2968 of file CGObjCMac.cpp.


Function Documentation

static void addIfPresent ( llvm::DenseSet< llvm::Value * > &  S,
llvm::Value V 
) [static]

Definition at line 3613 of file CGObjCMac.cpp.

static llvm::Constant* getConstantGEP ( llvm::LLVMContext &  VMContext,
llvm::Constant *  C,
unsigned  idx0,
unsigned  idx1 
) [static]

getConstantGEP() - Help routine to construct simple GEPs.

Definition at line 1684 of file CGObjCMac.cpp.

static Qualifiers::GC GetGCAttrTypeForType ( ASTContext Ctx,
QualType  FQT 
) [static]
static bool hasObjCExceptionAttribute ( ASTContext Context,
const ObjCInterfaceDecl OID 
) [static]

hasObjCExceptionAttribute - Return true if this class or any super class has the __objc_exception__ attribute.

Definition at line 1697 of file CGObjCMac.cpp.

References clang::ObjCInterfaceDecl::getSuperClass(), and clang::Decl::hasAttr().


Variable Documentation

const int ModuleVersion = 7 [static]

Definition at line 4308 of file CGObjCMac.cpp.