[clang] [llvm] [mlir] [debuginfo][coro] Emit debug info labels for coroutine resume points (PR #141937)

Adrian Vogelsgesang via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 1 13:31:10 PDT 2025


================
@@ -2344,11 +2344,15 @@ void ModuleBitcodeWriter::writeDILocalVariable(
 void ModuleBitcodeWriter::writeDILabel(
     const DILabel *N, SmallVectorImpl<uint64_t> &Record,
     unsigned Abbrev) {
-  Record.push_back((uint64_t)N->isDistinct());
+  uint64_t IsArtificialFlag = uint64_t(N->isArtificial()) << 1;
+  Record.push_back((uint64_t)N->isDistinct() | IsArtificialFlag);
   Record.push_back(VE.getMetadataOrNullID(N->getScope()));
   Record.push_back(VE.getMetadataOrNullID(N->getRawName()));
   Record.push_back(VE.getMetadataOrNullID(N->getFile()));
   Record.push_back(N->getLine());
+  Record.push_back(N->getColumn());
+  Record.push_back(
+      N->getCoroSuspendIdx().value_or(std::numeric_limits<uint64_t>::max()));
----------------
vogelsgesang wrote:

fixed `MetaDataLoader.cpp` to read this correctly. The writing code here was already as intended

https://github.com/llvm/llvm-project/pull/141937


More information about the llvm-commits mailing list