forked from OSchip/llvm-project
DebugInfo: CollectRecordStaticField -> CreateRecordStaticField to return its result.
llvm-svn: 188501
This commit is contained in:
parent
952dac3b7f
commit
ae01946afa
|
@ -866,10 +866,9 @@ CollectRecordLambdaFields(const CXXRecordDecl *CXXDecl,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// CollectRecordStaticField - Helper for CollectRecordFields.
|
/// CollectRecordStaticField - Helper for CollectRecordFields.
|
||||||
void CGDebugInfo::
|
llvm::DIDerivedType
|
||||||
CollectRecordStaticField(const VarDecl *Var,
|
CGDebugInfo::CreateRecordStaticField(const VarDecl *Var,
|
||||||
SmallVectorImpl<llvm::Value *> &elements,
|
llvm::DIType RecordTy) {
|
||||||
llvm::DIType RecordTy) {
|
|
||||||
// Create the descriptor for the static variable, with or without
|
// Create the descriptor for the static variable, with or without
|
||||||
// constant initializers.
|
// constant initializers.
|
||||||
llvm::DIFile VUnit = getOrCreateFile(Var->getLocation());
|
llvm::DIFile VUnit = getOrCreateFile(Var->getLocation());
|
||||||
|
@ -898,10 +897,10 @@ CollectRecordStaticField(const VarDecl *Var,
|
||||||
else if (Access == clang::AS_protected)
|
else if (Access == clang::AS_protected)
|
||||||
Flags |= llvm::DIDescriptor::FlagProtected;
|
Flags |= llvm::DIDescriptor::FlagProtected;
|
||||||
|
|
||||||
llvm::DIType GV = DBuilder.createStaticMemberType(RecordTy, VName, VUnit,
|
llvm::DIDerivedType GV = DBuilder.createStaticMemberType(
|
||||||
LineNumber, VTy, Flags, C);
|
RecordTy, VName, VUnit, LineNumber, VTy, Flags, C);
|
||||||
elements.push_back(GV);
|
|
||||||
StaticDataMemberCache[Var->getCanonicalDecl()] = llvm::WeakVH(GV);
|
StaticDataMemberCache[Var->getCanonicalDecl()] = llvm::WeakVH(GV);
|
||||||
|
return GV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// CollectRecordNormalField - Helper for CollectRecordFields.
|
/// CollectRecordNormalField - Helper for CollectRecordFields.
|
||||||
|
@ -952,7 +951,7 @@ CollectRecordFields(const RecordDecl *record, llvm::DIFile tunit,
|
||||||
for (RecordDecl::decl_iterator I = record->decls_begin(),
|
for (RecordDecl::decl_iterator I = record->decls_begin(),
|
||||||
E = record->decls_end(); I != E; ++I)
|
E = record->decls_end(); I != E; ++I)
|
||||||
if (const VarDecl *V = dyn_cast<VarDecl>(*I))
|
if (const VarDecl *V = dyn_cast<VarDecl>(*I))
|
||||||
CollectRecordStaticField(V, elements, RecordTy);
|
elements.push_back(CreateRecordStaticField(V, RecordTy));
|
||||||
else if (FieldDecl *field = dyn_cast<FieldDecl>(*I)) {
|
else if (FieldDecl *field = dyn_cast<FieldDecl>(*I)) {
|
||||||
CollectRecordNormalField(field, layout.getFieldOffset(fieldNo),
|
CollectRecordNormalField(field, layout.getFieldOffset(fieldNo),
|
||||||
tunit, elements, RecordTy);
|
tunit, elements, RecordTy);
|
||||||
|
|
|
@ -184,9 +184,8 @@ class CGDebugInfo {
|
||||||
void CollectRecordLambdaFields(const CXXRecordDecl *CXXDecl,
|
void CollectRecordLambdaFields(const CXXRecordDecl *CXXDecl,
|
||||||
SmallVectorImpl<llvm::Value *> &E,
|
SmallVectorImpl<llvm::Value *> &E,
|
||||||
llvm::DIType RecordTy);
|
llvm::DIType RecordTy);
|
||||||
void CollectRecordStaticField(const VarDecl *Var,
|
llvm::DIDerivedType CreateRecordStaticField(const VarDecl *Var,
|
||||||
SmallVectorImpl<llvm::Value *> &E,
|
llvm::DIType RecordTy);
|
||||||
llvm::DIType RecordTy);
|
|
||||||
void CollectRecordNormalField(const FieldDecl *Field, uint64_t OffsetInBits,
|
void CollectRecordNormalField(const FieldDecl *Field, uint64_t OffsetInBits,
|
||||||
llvm::DIFile F,
|
llvm::DIFile F,
|
||||||
SmallVectorImpl<llvm::Value *> &E,
|
SmallVectorImpl<llvm::Value *> &E,
|
||||||
|
|
Loading…
Reference in New Issue