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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to