diff options
author | Jakub Jelinek <jakub@redhat.com> | 2023-03-28 17:49:23 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2023-03-28 17:49:23 +0200 |
commit | af45b17d0a8fe3e7ae08662008a1f41e48a4a3eb (patch) | |
tree | ba1f03e6adddbeffabd7779f33a51fc2b6051ac9 /gcc | |
parent | 0e8fc610fb7112deb8c33c673a52983368dde9b7 (diff) | |
download | gcc-af45b17d0a8fe3e7ae08662008a1f41e48a4a3eb.zip gcc-af45b17d0a8fe3e7ae08662008a1f41e48a4a3eb.tar.gz gcc-af45b17d0a8fe3e7ae08662008a1f41e48a4a3eb.tar.bz2 |
c++: Allow translations of check_postcondition_result messages [PR109309]
As mentioned in the PR, constructing a message from two parts by
concatenating them prevents translations, unless one of the parts
is a keyword which should be never translated.
The following patch fixes that.
2023-03-28 Jakub Jelinek <jakub@redhat.com>
PR c++/109309
* contracts.cc: Include intl.h.
(check_postcondition_result): Don't form diagnostics from two halves
of an English message to allow translations.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/contracts.cc | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/gcc/cp/contracts.cc b/gcc/cp/contracts.cc index 8aca1ba..9d1cb55 100644 --- a/gcc/cp/contracts.cc +++ b/gcc/cp/contracts.cc @@ -161,6 +161,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-iterator.h" #include "print-tree.h" #include "stor-layout.h" +#include "intl.h" const int max_custom_roles = 32; static contract_role contract_build_roles[max_custom_roles] = { @@ -636,17 +637,15 @@ bool check_postcondition_result (tree decl, tree type, location_t loc) { if (VOID_TYPE_P (type)) - { - const char* what; - if (DECL_CONSTRUCTOR_P (decl)) - what = "constructor"; - else if (DECL_DESTRUCTOR_P (decl)) - what = "destructor"; - else - what = "function"; - error_at (loc, "%s does not return a value to test", what); - return false; - } + { + error_at (loc, + DECL_CONSTRUCTOR_P (decl) + ? G_("constructor does not return a value to test") + : DECL_DESTRUCTOR_P (decl) + ? G_("destructor does not return a value to test") + : G_("function does not return a value to test")); + return false; + } return true; } |