clang API Documentation
#include "CGDebugInfo.h"
#include "CGBlocks.h"
#include "CGCXXABI.h"
#include "CGObjCRuntime.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclFriend.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/RecordLayout.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Version.h"
#include "clang/Frontend/CodeGenOptions.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "clang/AST/BuiltinTypes.def"
#include "clang/AST/TypeNodes.def"
Go to the source code of this file.
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define BUILTIN_TYPE | ( | Id, | |
SingletonId | |||
) |
#define DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define NON_CANONICAL_TYPE | ( | Class, | |
Base | |||
) |
#define PLACEHOLDER_TYPE | ( | Id, | |
SingletonId | |||
) | case BuiltinType::Id: |
static unsigned getAccessFlag | ( | AccessSpecifier | Access, |
const RecordDecl * | RD | ||
) | [static] |
Convert an AccessSpecifier into the corresponding DIDescriptor flag. As an optimization, return 0 if the access specifier equals the default for the containing type.
Definition at line 810 of file CGDebugInfo.cpp.
References clang::AS_none, clang::AS_private, clang::AS_protected, clang::AS_public, clang::TagDecl::isClass(), clang::TagDecl::isStruct(), and clang::TagDecl::isUnion().
static SmallString<256> getUniqueTagTypeName | ( | const TagType * | Ty, |
CodeGenModule & | CGM, | ||
llvm::DICompileUnit | TheCU | ||
) | [static] |
In C++ mode, types have linkage, so we can rely on the ODR and on their mangled names, if they're external.
Definition at line 597 of file CGDebugInfo.cpp.
References clang::CodeGen::CodeGenModule::getCXXABI(), clang::TargetInfo::getCXXABI(), clang::TagType::getDecl(), clang::CodeGen::CGCXXABI::getMangleContext(), clang::CodeGen::CodeGenModule::getTarget(), clang::NamedDecl::isExternallyVisible(), clang::TargetCXXABI::isMicrosoft(), and clang::MangleContext::mangleCXXRTTIName().
static bool hasDefaultGetterName | ( | const ObjCPropertyDecl * | PD, |
const ObjCMethodDecl * | Getter | ||
) | [static] |
Definition at line 1614 of file CGDebugInfo.cpp.
References clang::NamedDecl::getDeclName(), clang::NamedDecl::getName(), clang::Selector::getNameForSlot(), clang::DeclarationName::getObjCSelector(), and clang::DeclarationName::isObjCZeroArgSelector().
static bool hasDefaultSetterName | ( | const ObjCPropertyDecl * | PD, |
const ObjCMethodDecl * | Setter | ||
) | [static] |
Definition at line 1626 of file CGDebugInfo.cpp.
References clang::SelectorTable::constructSetterName(), clang::NamedDecl::getDeclName(), clang::NamedDecl::getName(), clang::Selector::getNameForSlot(), clang::DeclarationName::getObjCSelector(), and clang::DeclarationName::isObjCOneArgSelector().
static bool hasExplicitMemberDefinition | ( | CXXRecordDecl::method_iterator | I, |
CXXRecordDecl::method_iterator | End | ||
) | [static] |
Definition at line 1493 of file CGDebugInfo.cpp.
Referenced by shouldOmitDefinition().
static bool isFunctionLocalClass | ( | const CXXRecordDecl * | RD | ) | [static] |
isFunctionLocalClass - Return true if CXXRecordDecl is defined inside a function.
Definition at line 1069 of file CGDebugInfo.cpp.
References clang::Decl::getDeclContext().
static bool shouldOmitDefinition | ( | CodeGenOptions::DebugInfoKind | DebugKind, |
const RecordDecl * | RD, | ||
const LangOptions & | LangOpts | ||
) | [static] |
Definition at line 1503 of file CGDebugInfo.cpp.
References clang::CXXRecordDecl::hasDefinition(), hasExplicitMemberDefinition(), clang::TagDecl::isCompleteDefinitionRequired(), clang::CXXRecordDecl::isDynamicClass(), clang::CodeGenOptions::LimitedDebugInfo, clang::CXXRecordDecl::method_begin(), clang::CXXRecordDecl::method_end(), clang::TSK_ExplicitInstantiationDeclaration, and clang::TSK_Undeclared.
static QualType UnwrapTypeForDebugInfo | ( | QualType | T, |
const ASTContext & | C | ||
) | [static] |
Definition at line 1977 of file CGDebugInfo.cpp.
References clang::QualType::getLocalQualifiers(), clang::ASTContext::getQualifiedType(), clang::Type::getTypeClass(), clang::QualType::getTypePtr(), getUnderlyingType(), clang::QualType::isNull(), Paren, and clang::Qualifiers::removeCommonQualifiers().