[PATCH] D144006: [DebugMetadata][DwarfDebug] Support function-local types in lexical block scopes (4/7)

Martin Storsjö via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 20 00:37:58 PDT 2023


mstorsjo added a comment.

This change triggers failed asserts when compiling code for at least arm and aarch64. It is reproducible with this reduced testcase:

  $ cat repro.c
  typedef long long a;
  typedef int b();
  int c, d;
  long e, f;
  short g, j;
  void *h;
  short i[];
  char k;
  a l, m, n;
  void o();
  int p();
  void r(b u) {
    struct {
      a q;
      a s, t
    } a;
    e || p(c, d);
    f = l = a.s;
    for (; a.s;)
      if (p(c, a, &a, a))
        a.t &&a.q &&p(a, k);
    if (g)
      u(i, m, n, 0, h);
    f = a.s;
    for (; a.s;)
      a.t &&a.q &&p(c, a, k);
    if (g && j)
      o(g);
  }
  int v(short *, long long, long long, int, void *) { r(v); } 
  $ clang -target aarch64-linux-gnu -c repro.c -g -O2
  clang: ../lib/CodeGen/AsmPrinter/DwarfDebug.cpp:2334: virtual void llvm::DwarfDebug::endFunctionImpl(const llvm::MachineFunction*): Assertion `LScopes.getAbstractScopesList().size() == NumAbstractSubprograms && "getOrCreateAbstractScope() inserted an abstract subprogram scope"' failed. 




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144006/new/

https://reviews.llvm.org/D144006



More information about the cfe-commits mailing list