GNU bug report logs - #70822
flymake mishandles GCC diagnostics in en_US.UTF-8 locale

Previous Next

Package: emacs;

Reported by: Paul Eggert <eggert <at> cs.ucla.edu>

Date: Tue, 7 May 2024 17:08:01 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>, Spencer Baugh <sbaugh <at> janestreet.com>
Cc: 70822 <at> debbugs.gnu.org
Subject: bug#70822: flymake mishandles GCC diagnostics in en_US.UTF-8 locale
Date: Wed, 08 May 2024 16:05:22 +0300
> Date: Tue, 7 May 2024 10:06:59 -0700
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> 
> 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.

AFAICT, flymake-tests.el injects LC_ALL=C into process-environment (in
flymake-tests--call-with-fixture called from
flymake-tests--with-flymake), so why doesn't that affect the locale
under which the test runs?

And could you perhaps show the error message reported by the failing
test(s) in that case?




This bug report was last modified 1 year and 94 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.