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().