aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2023-03-28 17:49:23 +0200
committerJakub Jelinek <jakub@redhat.com>2023-03-28 17:49:23 +0200
commitaf45b17d0a8fe3e7ae08662008a1f41e48a4a3eb (patch)
treeba1f03e6adddbeffabd7779f33a51fc2b6051ac9 /gcc
parent0e8fc610fb7112deb8c33c673a52983368dde9b7 (diff)
downloadgcc-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.cc21
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;
}