#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 "clang/Lex/HeaderSearchOptions.h"
#include "clang/Lex/PreprocessorOptions.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.
|
static bool | hasCXXMangling (const TagDecl *TD, llvm::DICompileUnit *TheCU) |
|
static SmallString< 256 > | getUniqueTagTypeName (const TagType *Ty, CodeGenModule &CGM, llvm::DICompileUnit *TheCU) |
|
static llvm::dwarf::Tag | getTagForRecord (const RecordDecl *RD) |
|
static unsigned | getAccessFlag (AccessSpecifier Access, const RecordDecl *RD) |
|
static bool | isFunctionLocalClass (const CXXRecordDecl *RD) |
|
static bool | hasExplicitMemberDefinition (CXXRecordDecl::method_iterator I, CXXRecordDecl::method_iterator End) |
|
static bool | shouldOmitDefinition (CodeGenOptions::DebugInfoKind DebugKind, const RecordDecl *RD, const LangOptions &LangOpts) |
|
static bool | hasDefaultGetterName (const ObjCPropertyDecl *PD, const ObjCMethodDecl *Getter) |
|
static bool | hasDefaultSetterName (const ObjCPropertyDecl *PD, const ObjCMethodDecl *Setter) |
|
static QualType | UnwrapTypeForDebugInfo (QualType T, const ASTContext &C) |
|
#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: |
#define TYPE |
( |
|
Class, |
|
|
|
Base |
|
) |
| |
static llvm::dwarf::Tag getTagForRecord |
( |
const RecordDecl * |
RD | ) |
|
|
static |
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 590 of file CGDebugInfo.cpp.
References clang::CodeGen::CodeGenModule::getCXXABI(), clang::TargetInfo::getCXXABI(), clang::TagType::getDecl(), clang::CodeGen::CGCXXABI::getMangleContext(), clang::CodeGen::CodeGenModule::getTarget(), hasCXXMangling(), clang::NamedDecl::isExternallyVisible(), clang::TargetCXXABI::isMicrosoft(), and clang::MangleContext::mangleCXXRTTIName().
static bool hasCXXMangling |
( |
const TagDecl * |
TD, |
|
|
llvm::DICompileUnit * |
TheCU |
|
) |
| |
|
static |