Subject: flymake mishandles GCC diagnostics in en_US.UTF-8 locale

From: Paul Eggert <[email-masked]>
Date: Tue, 7 May 2024 10:06:59 -0700

In the en_US.UTF-8 locale on Fedora 40, (GCC) 14.0.1 20240411 (Red Hat 
14.0.1-0) uses curved single quotes ‘like this’. This causes Emacs ‘make 
check’ to fail in the flymake tests.

For example, in the C locale 'gcc 
test/lisp/progmodes/flymake-resources/some-problems.h' outputs this:

   test/lisp/progmodes/flymake-resources/some-problems.h:3:1: warning: 
data definition has no type or storage class
       3 | strange;
         | ^~~~~~~
   test/lisp/progmodes/flymake-resources/some-problems.h:3:1: warning: 
type defaults to 'int' in declaration of 'strange' [-Wimplicit-int]
   test/lisp/progmodes/flymake-resources/some-problems.h:7:1: error: 
unknown type name 'sint'; did you mean 'int'?
       7 | sint main();
         | ^~~~
         | int

whereas in the en_US.UTF-8 locale the same command outputs this instead:

   test/lisp/progmodes/flymake-resources/some-problems.h:3:1: warning: 
data definition has no type or storage class
       3 | strange;
         | ^~~~~~~
   test/lisp/progmodes/flymake-resources/some-problems.h:3:1: error: 
type defaults to ‘int’ in declaration of ‘strange’ [-Wimplicit-int]
   test/lisp/progmodes/flymake-resources/some-problems.h:7:1: error: 
unknown type name ‘sint’; did you mean ‘int’?
       7 | sint main();
         | ^~~~
         | int

and flymake mishandles the latter set of diagnostics.