[llvm] Two DWARF variant part improvements (PR #138953)
Tom Tromey via llvm-commits
llvm-commits at lists.llvm.org
Thu May 8 06:59:13 PDT 2025
================
@@ -961,6 +961,43 @@ void DwarfUnit::addAnnotation(DIE &Buffer, DINodeArray Annotations) {
}
}
+void DwarfUnit::addDiscriminant(DIE &Variant, Constant *Discriminant,
+ bool IsUnsigned) {
+ if (const auto *CI = dyn_cast_or_null<ConstantInt>(Discriminant)) {
+ addInt(Variant, dwarf::DW_AT_discr_value, CI->getValue(), IsUnsigned);
+ } else if (const auto *CA =
+ dyn_cast_or_null<ConstantDataArray>(Discriminant)) {
+ // Must have an even number of operands.
+ unsigned NElems = CA->getNumElements();
+ if (NElems % 2 != 0) {
+ return;
+ }
+
+ DIEBlock *Block = new (DIEValueAllocator) DIEBlock;
+
+ const auto AddInt = [&](const APInt &Val) {
----------------
tromey wrote:
Thanks, I fixed this.
https://github.com/llvm/llvm-project/pull/138953
More information about the llvm-commits
mailing list