]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pru: Fix pru_pragma_ctable_entry diagnostics [PR118991]
authorJakub Jelinek <jakub@redhat.com>
Tue, 25 Feb 2025 19:03:38 +0000 (20:03 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 25 Feb 2025 19:03:38 +0000 (20:03 +0100)
HOST_WIDE_INT_PRINT* macros aren't supposed to be used in
gcc-internal-format format strings, we have the w modifier for HOST_WIDE_INT
in that case, the HOST_WIDE_INT_PRINT* macros might not work properly on
some hosts (e.g. mingw32 has HOST_LONG_LONG_FORMAT "I64" and that is
something pretty-print doesn't handle, while it handles "ll" for long long)
and also the use of macros in the middle of format strings breaks
translations (both that exgettext can't retrieve the string from there
and we get
 #: config/pru/pru-pragma.cc:61
 msgid "%<CTABLE_ENTRY%> index %"
 msgstr ""

 #: config/pru/pru-pragma.cc:64
 msgid "redefinition of %<CTABLE_ENTRY %"
 msgstr ""
in po/gcc.pot and also the macros are different on different hosts,
so even if exgettext extracted say "%<CTABLE_ENTRY%> index %lld is not valid"
it could be translated on some hosts but not e.g. mingw32).

So, the following patch just uses %wd instead.

Tested it before/after the
patch on
 #pragma ctable_entry 12 0x48040000
 #pragma ctable_entry 1024 0x48040000
 #pragma ctable_entry 12 0x48040001
and the result is the same.

2025-02-25  Jakub Jelinek  <jakub@redhat.com>

PR translation/118991
* config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Use %wd
instead of %" HOST_WIDE_INT_PRINT "d to print a hwi in error.

gcc/config/pru/pru-pragma.cc

index 9c182d788141e68c0701e2f9d5484648b8e8a7ef..c3f3d33d5470c3894684f598bd576777a99f44e6 100644 (file)
@@ -58,11 +58,9 @@ pru_pragma_ctable_entry (cpp_reader *)
          if (type != CPP_EOF)
            error ("junk at end of %<#pragma CTABLE_ENTRY%>");
          else if (i >= ARRAY_SIZE (pru_ctable))
-           error ("%<CTABLE_ENTRY%> index %" HOST_WIDE_INT_PRINT "d"
-                  " is not valid", i);
+           error ("%<CTABLE_ENTRY%> index %wd is not valid", i);
          else if (pru_ctable[i].valid && pru_ctable[i].base != base)
-           error ("redefinition of %<CTABLE_ENTRY "
-                  "%" HOST_WIDE_INT_PRINT "d%>", i);
+           error ("redefinition of %<CTABLE_ENTRY %wd%>", i);
          else
            {
              if (base & 0xff)