> On 20 Jan 2023, at 03:40, Paul Eggert <egg...@cs.ucla.edu> wrote: > > On 1/19/23 13:30, Sam James wrote: >> Right, I just meant that we don't tend to care about quieting warnings with >> older compilers, >> and it's not useful from a static analysis perspective here either given >> that older Clangs can't be trusted. >> It is of course useful as an attribute in general. I don't think either of >> these things are really >> a downside to committing the workaround here. If we get folks who get build >> failures with extra warnings >> enabled, we can tell them to upgrade their compiler. > > But clang 16 isn't out yet, so we can't reasonably tell people to upgrade. > > And even if it clang 16 were out, I can't reasonably tell all Emacs > developers to switch to it right away. Many of them are using Apple's > compiler and will upgrade whenever. Plain './configure; make' on a > bleeding-edge Emacs built from Git with Clang 15 would generate 270 false > alarms if we simply did "#define _Noreturn /**/", and I expect many Emacs > developers would be annoyed by that (or would stop paying attention to any > correct diagnostics mixed in with the flood of false positives). >
I take your point and it's fair enough. Thanks for hashing it out with me. > With that in mind, how about the attached Gnulib patch? (I haven't installed > it.) The basic idea is to "#define _Noreturn /**/" on buggy clangs if a > cautious builder compiles with > -D_GL_WORK_AROUND_LLVM_BUG_5979.<0001-snippet-_Noreturn-work-around-Clang-_Noreturn-bug.patch> If it's not too much of a hassle, this works for me, because at least we advertise the problem a bit, and we can tell distros to set -D_... if they're stuck on older Clang for a bit. Cheers Paul. Best, sam
signature.asc
Description: Message signed with OpenPGP