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