Skip to content

Commit 8e8bad7

Browse files
committed
Revert "[llvm][DebugInfo] DWARFv5: static data members declarations are DW_TAG_variable (llvm#72234)"
This reverts commit 9a9933f. The OCaml bindings were using `LLVMDIBuilderCreateStaticMemberType`, causing the API change in `9a9933fae23249fbf6cf5b3c090e630f578b7f98` to break buildbots that built the bindings. Revert until we figure out whether to fixup the bindings or just not change the C-API
1 parent 8936100 commit 8e8bad7

File tree

8 files changed

+18
-129
lines changed

8 files changed

+18
-129
lines changed

clang/lib/CodeGen/CGDebugInfo.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1681,8 +1681,7 @@ CGDebugInfo::CreateRecordStaticField(const VarDecl *Var, llvm::DIType *RecordTy,
16811681
llvm::DINode::DIFlags Flags = getAccessFlag(Var->getAccess(), RD);
16821682
auto Align = getDeclAlignIfRequired(Var, CGM.getContext());
16831683
llvm::DIDerivedType *GV = DBuilder.createStaticMemberType(
1684-
RecordTy, VName, VUnit, LineNumber, VTy, Flags, /* Val */ nullptr,
1685-
llvm::dwarf::DW_TAG_member, Align);
1684+
RecordTy, VName, VUnit, LineNumber, VTy, Flags, /* Val */ nullptr, Align);
16861685
StaticDataMemberCache[Var->getCanonicalDecl()].reset(GV);
16871686
StaticDataMemberDefinitionsToEmit.push_back(Var->getCanonicalDecl());
16881687
return GV;

llvm/include/llvm-c/DebugInfo.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -785,14 +785,14 @@ LLVMMetadataRef LLVMDIBuilderCreateMemberType(
785785
* \param Type Type of the static member.
786786
* \param Flags Flags to encode member attribute, e.g. private.
787787
* \param ConstantVal Const initializer of the member.
788-
* \param Tag DWARF tag of the static member.
789788
* \param AlignInBits Member alignment.
790789
*/
791-
LLVMMetadataRef LLVMDIBuilderCreateStaticMemberType(
790+
LLVMMetadataRef
791+
LLVMDIBuilderCreateStaticMemberType(
792792
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
793793
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
794794
LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal,
795-
unsigned Tag, uint32_t AlignInBits);
795+
uint32_t AlignInBits);
796796

797797
/**
798798
* Create debugging information entry for a pointer to member.

llvm/include/llvm/IR/DIBuilder.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,12 +376,11 @@ namespace llvm {
376376
/// \param Ty Type of the static member.
377377
/// \param Flags Flags to encode member attribute, e.g. private.
378378
/// \param Val Const initializer of the member.
379-
/// \param Tag DWARF tag of the static member.
380379
/// \param AlignInBits Member alignment.
381380
DIDerivedType *createStaticMemberType(DIScope *Scope, StringRef Name,
382381
DIFile *File, unsigned LineNo,
383382
DIType *Ty, DINode::DIFlags Flags,
384-
Constant *Val, unsigned Tag,
383+
Constant *Val,
385384
uint32_t AlignInBits = 0);
386385

387386
/// Create debugging information entry for Objective-C

llvm/lib/IR/DIBuilder.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -405,11 +405,12 @@ DIDerivedType *
405405
DIBuilder::createStaticMemberType(DIScope *Scope, StringRef Name, DIFile *File,
406406
unsigned LineNumber, DIType *Ty,
407407
DINode::DIFlags Flags, llvm::Constant *Val,
408-
unsigned Tag, uint32_t AlignInBits) {
408+
uint32_t AlignInBits) {
409409
Flags |= DINode::FlagStaticMember;
410-
return DIDerivedType::get(VMContext, Tag, Name, File, LineNumber,
411-
getNonCompileUnitScope(Scope), Ty, 0, AlignInBits,
412-
0, std::nullopt, Flags, getConstantOrNull(Val));
410+
return DIDerivedType::get(VMContext, dwarf::DW_TAG_member, Name, File,
411+
LineNumber, getNonCompileUnitScope(Scope), Ty, 0,
412+
AlignInBits, 0, std::nullopt, Flags,
413+
getConstantOrNull(Val));
413414
}
414415

415416
DIDerivedType *

llvm/lib/IR/DebugInfo.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,15 +1315,17 @@ LLVMDIBuilderCreateUnspecifiedType(LLVMDIBuilderRef Builder, const char *Name,
13151315
return wrap(unwrap(Builder)->createUnspecifiedType({Name, NameLen}));
13161316
}
13171317

1318-
LLVMMetadataRef LLVMDIBuilderCreateStaticMemberType(
1318+
LLVMMetadataRef
1319+
LLVMDIBuilderCreateStaticMemberType(
13191320
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
13201321
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
13211322
LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal,
1322-
unsigned Tag, uint32_t AlignInBits) {
1323+
uint32_t AlignInBits) {
13231324
return wrap(unwrap(Builder)->createStaticMemberType(
1324-
unwrapDI<DIScope>(Scope), {Name, NameLen}, unwrapDI<DIFile>(File),
1325-
LineNumber, unwrapDI<DIType>(Type), map_from_llvmDIFlags(Flags),
1326-
unwrap<Constant>(ConstantVal), Tag, AlignInBits));
1325+
unwrapDI<DIScope>(Scope), {Name, NameLen},
1326+
unwrapDI<DIFile>(File), LineNumber, unwrapDI<DIType>(Type),
1327+
map_from_llvmDIFlags(Flags), unwrap<Constant>(ConstantVal),
1328+
AlignInBits));
13271329
}
13281330

13291331
LLVMMetadataRef

llvm/lib/IR/DebugInfoMetadata.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -711,9 +711,7 @@ Constant *DIDerivedType::getStorageOffsetInBits() const {
711711
}
712712

713713
Constant *DIDerivedType::getConstant() const {
714-
assert((getTag() == dwarf::DW_TAG_member ||
715-
getTag() == dwarf::DW_TAG_variable) &&
716-
isStaticMember());
714+
assert(getTag() == dwarf::DW_TAG_member && isStaticMember());
717715
if (auto *C = cast_or_null<ConstantAsMetadata>(getExtraData()))
718716
return C->getValue();
719717
return nullptr;

llvm/lib/IR/Verifier.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,6 @@ void Verifier::visitDIDerivedType(const DIDerivedType &N) {
11721172
N.getTag() == dwarf::DW_TAG_restrict_type ||
11731173
N.getTag() == dwarf::DW_TAG_atomic_type ||
11741174
N.getTag() == dwarf::DW_TAG_member ||
1175-
(N.getTag() == dwarf::DW_TAG_variable && N.isStaticMember()) ||
11761175
N.getTag() == dwarf::DW_TAG_inheritance ||
11771176
N.getTag() == dwarf::DW_TAG_friend ||
11781177
N.getTag() == dwarf::DW_TAG_set_type,

llvm/test/DebugInfo/Generic/dwarf5-debug-info-static-member.ll

Lines changed: 0 additions & 109 deletions
This file was deleted.

0 commit comments

Comments
 (0)