Message ID | Y33fGGNXV6JNCK1p@tucnak |
---|---|
State | New |
Headers | show |
Series | diagnostics: Fix selftest ICE in certain locales [PR107722] | expand |
On Wed, 2022-11-23 at 09:51 +0100, Jakub Jelinek wrote: > Hi! > > As reported in the PR, since special_fname_builtin () call has been > introduced, the diagnostics code compares filename against _("<built- > in>") > rather than "<built-in>", which means that if self tests are > performed > with the string being translated, one self-test fails. > The following patch fixes that. > > Bootstrapped/regtested on x86_64-linux and i686-linux (with normal C > locale) > and by the reporter in German, where it fixes the problem. Ok for > trunk? OK Thanks Dave
--- gcc/diagnostic.cc.jj 2022-11-15 22:57:18.215211107 +0100 +++ gcc/diagnostic.cc 2022-11-22 12:36:37.197764164 +0100 @@ -2593,7 +2593,10 @@ test_diagnostic_get_location_text () const char *old_progname = progname; progname = "PROGNAME"; assert_location_text ("PROGNAME:", NULL, 0, 0, true); - assert_location_text ("<built-in>:", "<built-in>", 42, 10, true); + char *built_in_colon = concat (special_fname_builtin (), ":", (char *) 0); + assert_location_text (built_in_colon, special_fname_builtin (), + 42, 10, true); + free (built_in_colon); assert_location_text ("foo.c:42:10:", "foo.c", 42, 10, true); assert_location_text ("foo.c:42:9:", "foo.c", 42, 10, true, 0); assert_location_text ("foo.c:42:1010:", "foo.c", 42, 10, true, 1001);