[all-commits] [llvm/llvm-project] 4d09d0: [CodeView] Read and dump `S_ASSOCIATION` (#221034)

Nerixyz via All-commits all-commits at lists.llvm.org
Thu Sep 10 08:30:12 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4d09d062b4fb2e22f54b1125cbcea734efda81a8
      https://github.com/llvm/llvm-project/commit/4d09d062b4fb2e22f54b1125cbcea734efda81a8
  Author: Nerixyz <nerixdev at outlook.de>
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M llvm/include/llvm/DebugInfo/CodeView/CodeView.h
    M llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
    M llvm/include/llvm/DebugInfo/CodeView/EnumTables.h
    M llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
    M llvm/lib/DebugInfo/CodeView/EnumTables.cpp
    M llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp
    M llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
    M llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
    M llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
    A llvm/test/tools/llvm-pdbutil/s-association.yaml
    M llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  Log Message:
  -----------
  [CodeView] Read and dump `S_ASSOCIATION` (#221034)

`S_ASSOCIATION` associates one symbol with another one. Right now, it's
only used for coroutines. The `get_associatedSymbol*` functions from
[`IDiaSymbol8`](https://learn.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/idiasymbol8)
use this record. I'm not sure if the VS debugger uses this at all.

The symbol value was added earlier, but we weren't able to read/write
it. Also, lld would remove it when linking, as it didn't know if it
contained type indices.

This PR adds support for that. It's only visible in llvm-pdbutil where
we can dump it and roundtrip through yaml. I checked that it uses the
correct format when used with the DIA dump sample.

The coroutine kind is still missing. It's contained in the flags of an
`S_FRAMEPROC`. But it'd like to wait for #215887 which touches the flags
in YAML.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list