GNU bug report logs -
#70822
flymake mishandles GCC diagnostics in en_US.UTF-8 locale
Previous Next
To reply to this bug, email your comments to 70822 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#70822
; Package
emacs
.
(Tue, 07 May 2024 17:08:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Paul Eggert <eggert <at> cs.ucla.edu>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 07 May 2024 17:08:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
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.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#70822
; Package
emacs
.
(Wed, 08 May 2024 13:07:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 70822 <at> debbugs.gnu.org (full text, mbox):
> 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?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#70822
; Package
emacs
.
(Wed, 08 May 2024 17:11:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 70822 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
> 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?
I don't know. But shouldn't flymake also work when LC_ALL='en_US.UTF-8'?
That is, instead of trying (but evidently failing) to check only
LC_ALL='C', shouldn't flymake-tests also check the LC_ALL='en_US.UTF-8'
case?
> And could you perhaps show the error message reported by the failing
> test(s) in that case?
The contents of test/lisp/progmodes/flymake-tests.log are attached.
[flymake-tests.log (text/x-log, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#70822
; Package
emacs
.
(Wed, 08 May 2024 18:40:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 70822 <at> debbugs.gnu.org (full text, mbox):
> Date: Wed, 8 May 2024 10:10:00 -0700
> Cc: 70822 <at> debbugs.gnu.org
> From: Paul Eggert <eggert <at> cs.ucla.edu>
>
> > 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?
>
> I don't know. But shouldn't flymake also work when LC_ALL='en_US.UTF-8'?
It should, but you didn't report a failure in Flymake (which should
use the actual locale), you reported a failure in flymake-tests, which
(for some reason) explicitly sets LC_ALL=C. If you can show a recipe
for failure in Flymake itself that only happens in a UTF-8 locale,
please do. Perhaps we will find that both problems are caused by the
same root cause, who knows?
> > And could you perhaps show the error message reported by the failing
> > test(s) in that case?
>
> The contents of test/lisp/progmodes/flymake-tests.log are attached.
Thanks.
This bug report was last modified 1 year and 93 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.